2017-10-08 5 views
0

単純なループを実行しようとしていますが、条件が真であるが動作していない場合は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] 
+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) 
+0

、あなたが要素を挿入べきではありません動作しません、あなたはそれを交換する必要があり、更新...つもりは私の答えを更新しています –

+0

あなたがロジックに間違ってやっている動作しません –

+0

答え、あなたはテストすることができます –

1

あなたは間違っています。リストに挿入すると、アイテムは特定の位置に追加されます(あなたのケースでは0)。あなたが望む出力はのカールデータを操作します。すなわち、1 - > 01,2 - > 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'] 
+0

ありがとうビニー –

関連する問題