[英]Converting list of strings to floats and add 1
我已將我的輸入解析為此列表:
lst = ['6,3', '3,2', '9,6', '4,3']
如何將此字符串列表更改為浮動列表? 雖然nw字符串的數字不是由a分隔的。 但是,
之后,我想為每個浮點數添加1。 這樣輸出就變成了:
lst = [7.3, 4.2, 10.6, 5.4]
你可以使用locale.atof(string)
這是一個設計用於將字符串轉換為float的函數,考慮到語言環境設置, 即考慮到在某些文化/語言中逗號用於生成小數點,如反對一段時期。
對此的列表理解將是這樣的
from locale import atof
a = ['6,3', '3,2', '9,6', '4,3']
b = [atof(i) + 1 for i in a]
不幸的是,我無法測試它是否與逗號一起使用,因為我的語言環境設置為使用句點。
如果您不想使用locale.atof
那么下面的代碼將通過將逗號轉換為句點來執行類似的工作。 您可以使用str.replace
將句號替換為句點。
a = ['6,3', '3,2', '9,6', '4,3']
b = [float(i.replace(',', '.')) + 1 for i in a]
# [7.3, 4.2, 10.6, 5.3]
這個列表理解相當於
a = ['6,3', '3,2', '9,6', '4,3']
b = []
for i in a:
j = float(i.replace(',', '.')) + 1
b.append(j)
關於什么:
l2 = [float(num.replace(',', '.')) + 1 for num in lst]
首先用字符串中的點替換逗號,然后轉換為浮點數並將結果加1。 對列表中的每個元素執行操作。
使用列表理解:
lst = ['6,3', '3,2', '9,6', '4,3']
new_lst = [float(num.replace(',','.')) + 1 for num in lst]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.