python二维列表转字典1001python二维列表转字典,python二维列表转字典1001python二维列表转字典_Python 进阶编程之字典的高级用法......

原标题:Python 进阶编程之字典的高级用法

阅读文本大概需要 11 分钟。

一、 collections 中 defaultdict 的使用1.1 字典的键映射多个值

将下面的列表转成字典

l = [( 'a', 2),( 'b', 3),( 'a', 1),( 'b', 4),( 'a', 3),( 'a', 1),( 'b', 3)]

一个字典就是一个键对应一个单值的映射,而上面的列表中有相同键。如果你想要一个键映射多个值,那么就需要将这多个值放到另外的序列中,比如 list 或者 set 里面,像下面这样:

d = {

'a': [ 1, 2, 3],

'b': [ 4, 5]

}

e = {

'a': { 1, 2, 3},

'b': { 4, 5}

}

你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值。

In [ 1]: l = [( 'a', 2),( 'b', 3),( 'a', 1),( 'b', 4),( 'a', 3),( 'a', 1),( 'b', 3)]

In [ 2]: fromcollections importdefaultdict

In [ 3]: d = defaultdict(list)

In [ 4]: forkey, value inl:

...: d[key].append(value)

...:

In [ 5]: d

Out[ 5]: defaultdict(list, { 'a': [ 2, 1, 3, 1], 'b': [ 3, 4, 3]})

当然这个默认的容器不一定是 list, 也可以是集合 set。根据自己的需求选择用 list 还是 set 。如果你想保持元素的插入顺序就应该使用列表,如果想去掉重复元素就使用集合!

1.2 统计字典中某个值出现的次数

来源于微信交流群里一个朋友工作中的问题,列表中有很多字典,需要统计字典中相同的键对应的值的和

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值