使用 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)
但其他答案更好。
为什么这样的构造不起作用?
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)
但其他答案更好。