繁体   English   中英

使用第二个元素从元组列表创建字典

[英]Create dictionary from list of tuples using second element

我有一个这样的元组列表列表:

new = [[('name', 'n1')], [('value', 'v1')], [('name', 'n2')], [('value', 'v2')], [('name', 'n3')], [('value', 'v3')]]

我想 map 第一个'name'元组到第一个'value'元组,第二到第二,等等。我一直在做的是:

res = dict(zip(new[0],new[1]))

这给了我{('name', 'n1'):('value', 'v1'), ('name', 'n2'):('value', 'v2'), ('name', 'n3'):('value':'v3')} 这很接近,但我真的只是想要这个: {'n1':'v1', 'n2':'v2', 'n3':'v3'} 我只想要元组中的第二个元素。 我怎样才能做到这一点?

尝试这个,

print(dict((x[0][1], y[0][1]) for x, y in zip(new[::2], new[1::2])))

{'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}

这里是 go:

res= {new[2*i][0][1]:new[2*i+1][0][1] for i in range(len(new)//2)}

>>> res
{'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}

尝试这个:

new = [[('name', 'n1')], [('value', 'v1')], [('name', 'n2')], [('value', 'v2')], [('name', 'n3')], [('value', 'v3')]]
output = {}
while new:
    key = new.pop(0)
    value = new.pop(0)
    output[key[0][1]] = value[0][1]

print(output) 
# output: {'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM