2017-12-16 11 views
1

forを使用して、リスト(codes)のインデックスを使用して辞書(keys)から対応する文字を新しいリスト(decodedlist)ループ。Python:forループ内のリストのインデックス参照を使用して追加する

試行錯誤の末、i-1decodedlist.append(keys[codes[i-1]])に入力すると、私が望む結果が得られます(abcde)。

私は理由を理解することができず、これを代替/より効率的にコーディングする方法があるのか​​不思議です。 Pythonで

import re 

samplecode=''' 
1asd 2asd as3d 4 asd5asd''' 

codes = re.findall(r'\d{1,2}',samplecode) 
codes = list(map(int,codes)) 

keys = {1:'a',2:'b',3:'c',4:'d',5:'e',6:'f',7:'g',8:'h',9:'i',10:'j'} 

decodedlist=[] 
    for i in codes: 
    decodedlist.append(keys[codes[i-1]]) 

decodedstr=''.join(decodedlist) 
print(decodedstr) 

答えて

0

配列は、最初のアイテムは、あなたの辞書が1 1

で最初の項目で索引付けされたインデックス0になるようにインデックス付け0であります
関連する問題