-1

可能重复:
如何在python中将字符串转换为整数?

listy = [['1', '2', '3', '4', '5'], "abc"]

for item in listy[0]:
    int(item)

print listy

在嵌套列表中,如何将所有这些更改stringsints?上面的内容给了我一个输出:

[['1', '2', '3', '4', '5'], 'abc']

这是为什么?

提前致谢!

4

1 回答 1

0

您需要将转换后的项目分配回子列表 ( 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循环的一种简写),它遍历列表,将每个项目转换为整数并返回一个新列表。然后将新列表分配回(就地,可选)到外部列表。

这是针对您的特定问题的非常定制的解决方案。更通用的解决方案涉及递归以获取子列表,以及某种检测候选数字转换的方法。

于 2012-10-02T02:51:18.730 回答