我有一個這樣的元組列表列表:new = [[('name', 'n1')], [('value', 'v1')], [('name', 'n2')], [('value', 'v2')], [('name', 'n3')], [('value', 'v3')]]我想將第一個元組映射到第'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'}:我只想要元組中的第二個元素。我怎樣才能做到這一點?
3 回答

翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
嘗試這個,
print(dict((x[0][1], y[0][1]) for x, y in zip(new[::2], new[1::2])))
{'n1': 'v1', 'n2': 'v2', 'n3': 'v3'}

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊
干得好:
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'}

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
嘗試這個:
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'}
添加回答
舉報
0/150
提交
取消