我想将一个数字列表返回给字符串列表:我有一个列表
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 :(得分: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
的每个键的dict中获取值。通过空字符串将它们连接成一个输出'accdafa'