可能重复:
如何在python中将字符串转换为整数?
listy = [['1', '2', '3', '4', '5'], "abc"]
for item in listy[0]:
int(item)
print listy
在嵌套列表中,如何将所有这些更改strings
为ints
?上面的内容给了我一个输出:
[['1', '2', '3', '4', '5'], 'abc']
这是为什么?
提前致谢!
可能重复:
如何在python中将字符串转换为整数?
listy = [['1', '2', '3', '4', '5'], "abc"]
for item in listy[0]:
int(item)
print listy
在嵌套列表中,如何将所有这些更改strings
为ints
?上面的内容给了我一个输出:
[['1', '2', '3', '4', '5'], 'abc']
这是为什么?
提前致谢!
您需要将转换后的项目分配回子列表 ( listy[0]
):
listy[0][:] = [int(x) for x in listy[0]]
解释:
for item in listy[0]:
int(item)
上面迭代子列表中的项目并将它们转换为整数,但它没有将表达式的结果分配int(item)
给任何东西。因此结果丢失。
[int(x) for x in listy[0]]
是一个列表推导(for
循环的一种简写),它遍历列表,将每个项目转换为整数并返回一个新列表。然后将新列表分配回(就地,可选)到外部列表。
这是针对您的特定问题的非常定制的解决方案。更通用的解决方案涉及递归以获取子列表,以及某种检测候选数字转换的方法。