python字典中一个键只能有一个值么_字典中具有多个值的键(Python)

对于python3,您可以使用dict comp,使用扩展的可迭代解包来拆分列表中的每个字符串并创建从拆分元素中删除的键/值:

l = ['A,5']

d = {k: list(map(int,rest)) for k,*rest in (s.split(",") for s in l) }

对于python2,语法不太好:

l = ['A,5']

d = {s[0]: map(int,s[1:] ) for s in (s.split(",") for s in l)}

两者都应该给你这样的东西:

In [32]: d = {k: list(map(int,") for s in l) }

In [33]: d

Out[33]: {'A': [1,'B': [2,'C': [4,4],'D': [4,5]}

为了打破它,内部的exp创建我们的分裂字符串:

In [35]: list (s.split(",") for s in l)

Out[35]: [['A','1','1'],['B','2',['C','4','4'],['D','5']]

然后在python3的情况下,对于k,* rest in .. k是列表的第一个元素,* rest语法基本上意味着其他一切.

In [37]: for k,") for s in l):

print(k,rest)

....:

A ['1','1']

B ['2','1']

C ['4','4']

D ['4','5']

所以将它们放在一起使用for循环创建dict将是:

In [38]: d = {}

In [39]: for k,") for s in l):

d[k] = list(map(int,rest))

....:

In [40]: d

Out[40]: {'A': [1,5]}

或者在python2的情况下:

In [42]: d = {}

In [43]: for spl in (s.split(",") for s in l):

d[spl[0]] = list(map(int,spl[1:]))

....:

In [44]: d

Out[44]: {'A': [1,5]}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值