使用 for 循环将 Int 转换为 str

Int convert to str using for cycle

为什么这样的构造不起作用?

l = [1,2,3]
for x in l:
    x = str(x)
    print(l)

它返回:

[1, 2, 3]
[1, 2, 3]
[1, 2, 3]

而不是预期的:

['1', '2', '3']
['1', '2', '3']
['1', '2', '3']

对于每次迭代,您都是在不修改原始列表的情况下打印它。

使用map()

 list(map(str, l))
 >> ['1', '2', '3']

或列表理解

l = [str(x) for x in l]

当您执行 x = str(x) 时,它会将 x 中的值更改为 str(而不是列表 l 中的元素)

但是当您尝试更改列表时 l

我建议你尝试列表理解:

l = [str(x) for x in l]

您需要将转换后的 x 存储回列表,如下所示:

l = [1,2,3]
new_l = []
for x in l:
    new_l.append(str(x))
    print(new_l)

此外,如果您不习惯使用地图(请参阅其他答案),您可以使用:

for i,x in enumerate(l):
    l[i] = str(x)

但其他答案更好。