在python中获取子列表的第一个元素作为字典键

unguejic  于 2022-11-28  发布在  Python
关注(0)|答案(5)|浏览(173)

我看了看,但我没有找到答案(我对python还很陌生)。
问题很简单,我有一个由子列表组成的列表:

ll
[[1,2,3], [4,5,6], [7,8,9]]

我想做的是创建一个字典,它把每个子列表的第一个元素作为键,把对应子列表的值作为值,比如:

d = {1:[2,3], 4:[5,6], 7:[8,9]}

我怎么能那样做呢?

1u4esq0p

1u4esq0p1#

使用dict comprehension

{words[0]:words[1:] for words in lst}

输出:

{1: [2, 3], 4: [5, 6], 7: [8, 9]}
zlwx9yxi

zlwx9yxi2#

使用字典理解(对于Python 2.7 +)和切片-

d = {e[0] : e[1:] for e in ll}

演示-

>>> ll = [[1,2,3], [4,5,6], [7,8,9]]
>>> d = {e[0] : e[1:] for e in ll}
>>> d
{1: [2, 3], 4: [5, 6], 7: [8, 9]}
w8rqjzmb

w8rqjzmb3#

你可以这样做:

ll = [[1,2,3], [4,5,6], [7,8,9]]
dct = dict( (item[0], item[1:]) for item in ll)
# or even:   dct = { item[0]: item[1:] for item in ll }
print(dct)
# {1: [2, 3], 4: [5, 6], 7: [8, 9]}
t2a7ltrp

t2a7ltrp4#

主题的另一个变体:

d = {e.pop(0): e for e in ll}
ifmq2ha2

ifmq2ha25#

另一个:

d = {k: v for k, *v in ll}

相关问题