簡體   English   中英

將字符串列表轉換為浮點數並添加1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM