【发布时间】:2018-11-07 14:18:19
【问题描述】:
我正在尝试将多种类型列表中的项目转换为浮点数,以便
L = ["29.3", "tea", "1", None, 3.14]
会变成
D = [29.3, "tea", 1, None, 3.14]
我的尝试如下:
L = ["29.3", "tea", "1", None, 3.14]
D = []
for item in L:
try:
float(item)
D.append(item)
except ValueError:
D.append(item)
print(D)
这会引发一个
line 5, in <module> float(item) TypeError: float() argument must be a string or a number, not 'NoneType'` error.
如果我将None 项目更改为"None" 中的字符串,它会生成与L 相同的列表D。所以...
- 如何跳过
None项目?我必须使用if item == None: pass声明吗,还是有更好的方法? - 为什么我把
None改成"None",类型转换还是不行?
【问题讨论】:
-
你想把
None转换成什么? -
float(item)没有实现任何目标,因为它没有重新分配item。使用item = float(item)
标签: python python-3.x types type-conversion try-except