假设我们有字典将字符串翻译成数字。
如何将其反转到列表中?
假设,我们可以用空字符串''
填充未映射的数字。
此处示例如何运作:
>>> dic_into_list({'x':0, 'z':2, 'w':3})
['x', '', 'z', 'w']
答案 0 :(得分:3)
d = {'x':0, 'z':2, 'w':3}
lst = [""] * (max(d.values()) + 1)
for k, v in d.items():
lst[v] = k
print(lst)
打印
['x', '', 'z', 'w']
答案 1 :(得分:1)
最简单的方法是翻转dict
,然后在dict
中迭代到最大值(现在为关键字):
original = {'x':0, 'z':2, 'w':3}
d = dict((v, k) for k, v in original.iteritems())
print [d.get(i, '') for i in range(max(d) + 1)]
答案 2 :(得分:0)
我分享我当前的解决方案:(我在其他帖子中寻找更短和清除的实现):
def dic_into_list(dic):
maxindex = max([v for i,v in dic.items()])
dicrev = {num:name for name,num in dic.items()}
l=[]
for i in range(0,maxindex+1):
if i in dicrev:
l.append(dicrev[i])
else:
l.append('')
return l