如何获取如下的元组列表:
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且更通用的方法。
谢谢!
答案 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}