2014-01-29 150 views
2

的名單我想號碼列表返回字符串列表:我有一個列表返回數的列表,以字符串

copy=[[1,'a'],[55,'b'],[100,'c], [11,d],[66,f]] 

,如果我有一個列表code=[1,100,100,11,1,66,1] 結果列表必須像以下列表: ['a','c','c','d','a','f','a']然後返回一個序列seq=['accdafa']

這意味着,我的每個元素在列表中的副本元素列表中的代碼進行比較。 比如我拿件1從代碼我複製列表的元素進行比較 code[0]=1

if code[0]==copy[0][0]: 
       seq.append(copy[0][1]) 
      else: 
       go to the next element of the list 'copy' 

我嘗試代碼:

for j in range(len(code)): 

       if code[j]==copy[0][0]: 
       seq.append(copy[0][1]) 

我收到以下錯誤:

IndexError: list index out of range 

對於列表中其餘元素的相同內容code

+0

是啊,看看dictinoaries。你會發現它會讓你的生活變得更加容易,使用它們很容易 – ZekeDroid

回答

5

完美用於dict

copy = [[1, 'a'], [55, 'b'], [100, 'c'], [11, 'd'], [66, 'f']] 
copy_as_dict = dict(copy) 
code = [1, 100, 100, 11, 1, 66, 1] 
seq = ''.join(copy_as_dict[i] for i in code) 

各列表項的第一個元素成爲關鍵,並在code第二成爲

迭代,你從字典搶每個關鍵code。加入一個空字符串smooshes他們在一起成爲一個輸出,'accdafa'

+0

好的。如果列表代碼是'code = [[1,100,100,11,1,66,1],[66,1,100,66]]'和seq = [['accdafa'],['facf']]' – user3216969