循环时将值插入列表

时间:2017-10-08 08:37:13

标签: python loops insert

尝试执行简单循环并在条件为真时插入0,但它不起作用。

你可以帮我解决这个简单的问题

谢谢

a_list = [1,2,3]
num = 0
for i in a_list:
    if len(str(i)) < 2 :
    a_list.insert(i,num)

print(a_list)

a_list must be [01,02,03] 

2 个答案:

答案 0 :(得分:2)

你缺少缩进,它应该是这样的:

a_list = [1,2,3]
num = 0
for i in a_list:
    if len(str(i)) < 2:
        a_list.insert(i,num)

print(a_list)

你在逻辑上做错了,你应该替换而不是插入元素,你应该有这样的东西:

a_list = [1,2,3]
num = 0
for i,e in enumerate(a_list):
    if len(str(e)) < 2:
        a_list[i]='0'+str(e);

print(a_list)

答案 1 :(得分:1)

你弄错了。插入列表时,将项目添加到特定位置(在您的情况下为0)。您想要的输出是操纵当前数据,即更改1 - &gt; 01,2 - &gt; 02.它与[0,1]不一样。

a_list = [1,2,3]
num = 0
for idx, i in enumerate(a_list):
    if len(str(i)) < 2:
        a_list[idx] = '{:0>2}'.format(i)

print(a_list)  # --> ['01', '02', '03']