![](/img/trans.png)
[英]In Python how do you convert strings in a list of list to other types, such as ints, floats, booleans, etc?
[英]How do I convert a list of strings in a list composed of ints and floats to both ints and floats?
例如,我有列表 ['-1','9','7.8'] 如何將列表轉換為 [-1,9,7.8] 而不必在全部轉換為浮點數或全部轉換為浮點數之間進行選擇整數?
您可以使用列表理解和三元運算符來執行此操作
lst =['-1','9','7.8']
lst = [float(numStr) if '.' in numStr else int(numStr) for numStr in lst ]
這里有2個簡單的解決方案
# 1 Just convert to float.
print([float(i) for i in ['-1','9','7.8']])
# 2 Check if are dotted
convert = [float(i) if '.' in i else int(i) for i in ['-1','9','7.8']]
print(convert)
第一個可行,因為整數總是可以轉換為浮點數。 但是,如果您真的需要區分 2,那么只需檢查是否加點。
**解決方案 3 **
“請求寬恕而不是許可”只是嘗試將其轉換為 int,如果失敗則為浮點數
def int_float_converter(data):
converted_data = []
for d in data:
val = None
try:
val = int(d)
except ValueError:
val = float(d)
finally:
if val:
converted_data.append(val)
return converted_data
converted = int_float_converter(['-1','9','7.8'])
print(converted)
# [-1, 9, 7.8]
int(x) if int(x) == float(x) else float(x)
是確定字符串是整數還是浮點數的有用方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.