Python将子列表中的所有项转换为整数

2024-04-24 08:45:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python编写了以下测试代码:

lst1 = ["1", "2", "3"]
lst2 = ["4", "5", "6"]
lst3 = ["7", "8", "9"]
numbers = [lst1, lst2, lst3]
for lst in numbers:
    lst = list(map(int, lst))
print (numbers)

我要做的是将lst1lst2和{}中的所有字符串变量转换为整数,这些变量都是列表numbers中的子列表。我使用map()函数通过迭代每个列表并转换列表来实现这一点,但是不知怎么的,它不起作用。在

现在,我使用以下代码尝试了另一种方法:

^{pr2}$

出于某种原因,这是有效的。有人知道为什么前一个代码不起作用,而后一个代码有效吗?我只想绕着它转一圈,这样我就完全明白为什么它不起作用了。在

谢谢!在


Tags: 字符串代码inmap列表forlistint
3条回答

您正在打印numbers,它是列表的原始列表,而不是{},它是经过修改的新列表。
尝试:

for lst in numbers:
    lst = list(map(int, lst))
    print (lst)



 >>> 
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
>>> 
for lst in numbers:
    lst = list(map(int, lst))

创建一个遍历numbers的引用lst,然后在每次迭代时将该引用重新分配给一个新列表,这不会更改原始列表的内容。在

这与

^{pr2}$

不会改变x的值

这是关于更新循环内的numbers变量(这根本不起作用)。我通常是这样做的:

lst1 = ["1", "2", "3"]
lst2 = ["4", "5", "6"]
lst3 = ["7", "8", "9"]
numbers = [lst1, lst2, lst3]
for ind,lst in enumerate(numbers):
    numbers[ind] = list(map(int, lst))
print (numbers)

也发现了这个问题,其中似乎有类似的问题。 How to modify list entries during for loop?

相关问题 更多 >