2017-10-08 10 views
0

en essayant de faire une boucle simple et insérer 0 si la condition est vraie, mais cela ne fonctionne pas.insérer une valeur à une liste tandis que la boucle

pourrait vous s'il vous plaît me aider à résoudre cette question simple,

Merci

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] 
+0

il ne fonctionne toujours pas –

Répondre

2

Il vous manque indentation, il devrait ressembler à ceci:

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) 

et que vous faites mal dans votre logique, vous devriez remplacer et ne pas insérer l'élément, vous devriez avoir quelque chose comme ceci:

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) 
+0

il ne fonctionne toujours pas –

+0

que vous faites mal dans la logique, vous ne devriez pas insérer élément, vous devez le remplacer ... va me mettre à jour ma réponse –

+0

réponse à jour , vous pouvez tester –

1

Vous avez eu tort. Lorsque vous insérez dans une liste, vous ajoutez un élément à une position spécifique (0 dans votre cas). La sortie que vous voulez est en manipulant les données du calendrier, par exemple 1 -> 01, 2 -> 02. Ce n'est pas le même que [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'] 
+0

Merci beaucoup Vinny –