使用元组列表中的第一个元素作为字典键

时间:2018-07-23 18:09:55

标签: python list dictionary

如何获取如下的元组列表:

test = [('A', 1, 8, 4), ('B', 2, 6, 2), ('C', 3, 6, 2)]

并创建一个使用每个元组中的第一个元素作为键的字典

output = {'A': (1, 8, 4), 'B':(2, 6, 2), 'C': (3, 6, 2)}

如果原始列表是长度为2的元组列表,那么dict(test)可以正常工作,但是在这种情况下不起作用。

我可以[i[0] for i in test]来提取每个元组的第一个元素,但是我认为可能有一种更高效/ Pythonic且更通用的方法。

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用字典理解:

output = {item[0]: item[1:] for item in test}

答案 1 :(得分:0)

使用dict

例如:

test = [('A', 1, 8, 4), ('B', 2, 6, 2), ('C', 3, 6, 2)]
print( dict((i[0], i[1:]) for i in test) )

输出:

{'A': (1, 8, 4), 'C': (3, 6, 2), 'B': (2, 6, 2)}

答案 2 :(得分:0)

您可以扩展您提出的答案,然后进行字典理解。尝试以下方法:

output = {i[0]: i[1:] for i in test}