【发布时间】:2021-10-15 16:08:37
【问题描述】:
在 python 中,我想将列表的一些字符串元素转换为 int。
所以我有:
my_list = [“汽车”、“10”、“20”、“50”、“60”、“13”、“自行车”]
制作方法:
my_list = ["汽车", 10, 20, 50, 60, 13, "自行车"]
【问题讨论】:
在 python 中,我想将列表的一些字符串元素转换为 int。
所以我有:
my_list = [“汽车”、“10”、“20”、“50”、“60”、“13”、“自行车”]
制作方法:
my_list = ["汽车", 10, 20, 50, 60, 13, "自行车"]
【问题讨论】:
一个简单的comprehension 就可以了:
my_list = [int(x) if x.isdigit() else x for x in my_list]
这使用conditional expression 并使用str.isdigit 进行测试。
str.isdigit 检查确实假定所有数字都是非负整数。对于像"-5" 或"1.7" 这样的更复杂的数字字符串,您可能需要更详细地使用循环,并且可能使用更广泛的类型(float)来配合@Sujay 的解决方案。
【讨论】:
for i, j in enumerate (my_list):
try:
my_list[i]=int(j)
except ValueError:
pass
【讨论】: