Int转换为str用于循环

时间:2015-02-10 09:51:17

标签: python python-3.4

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

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']

4 个答案:

答案 0 :(得分:2)

对于每次迭代,您都要打印原始列表而不进行修改。

使用map()

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

或列表理解

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

答案 1 :(得分:0)

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

但是当您尝试更改列表l

我建议你尝试列表理解:

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

答案 2 :(得分:0)

您需要将铸造的x存储回列表,如下所示:

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

答案 3 :(得分:0)

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

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

但其他答案更好。