Python 转换2+;字典中的元素

Python 转换2+;字典中的元素,python,dictionary,Python,Dictionary,我有一个包含2个以上元素的元组列表,其中每个元组的第一个元素是一个数字,在所有元组中都是唯一的。如何将元组列表转换为字典,其中键是每个元组的第一个元素 我知道我可以使用dict(mylist),但它只适用于2元素元组。你可以使用dict >>> l = [(1, 'a', 'b'), (2, 'c', 'd')] >>> {i[0]: i[1:] for i in l} {1: ('a', 'b'), 2: ('c', 'd')} 如果您

我有一个包含2个以上元素的元组列表,其中每个元组的第一个元素是一个数字,在所有元组中都是唯一的。如何将元组列表转换为字典,其中键是每个元组的第一个元素


我知道我可以使用dict(mylist),但它只适用于2元素元组。

你可以使用dict

>>> l = [(1, 'a', 'b'),
         (2, 'c', 'd')]
>>> {i[0]: i[1:] for i in l}
{1: ('a', 'b'),
 2: ('c', 'd')}

如果您使用的是Python 2,请使用CoryKramer的答案,如果您使用的是Python 3,请避免显式索引

>>> lst = [(1, 'a', 'b'), (2, 'c', 'd')]
>>> {key:tuple(rest) for key, *rest in lst}
{1: ('a', 'b'), 2: ('c', 'd')}

你应该能够使用字典来理解。您尝试过什么?您解析每个元组,将第一个元素设置为键,将其余元素设置为所述键的值可能与Wow重复<代码>对于键,*rest在lst中就是这样
lisp
@quamrana我不知道任何lisp。但是长时间的拆包总是让我想起哈斯克尔。(当然,Haskell有更强大的模式匹配功能。)如何创建数组而不是元组作为值?@otma
{key:rest for key,*rest in lst}
如果“数组”是指列表的话。