码迷,mamicode.com
首页 > 编程语言 > 详细

Python词典设置默认值小技巧

时间:2016-09-28 01:50:47      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

使用defaultdict为词典设置默认值

测试代码

  1. from collections import defaultdict
  2. cn = defaultdict(list)
  3. print cn
  4. cn[‘abc‘].append(‘123‘)
  5. print cn
  6. cn[‘abc‘].append(‘456‘)
  7. print cn
  8. bn = defaultdict(int)
  9. bn[‘abc‘]=1
  10. print bn
  11. bn[‘abc‘]+=1
  12. print bn

运行结果

  1. defaultdict(<type ‘list‘>,{})
  2. defaultdict(<type ‘list‘>,{‘abc‘:[‘123‘]})
  3. defaultdict(<type ‘list‘>,{‘abc‘:[‘123‘,‘456‘]})
  4. defaultdict(<type ‘int‘>,{‘abc‘:1})
  5. defaultdict(<type ‘int‘>,{‘abc‘:2})

默认词典的值即为list -> [] 或者 int -> 0 关键是能一次性设置所有的值,包括新值,速度很快。

使用setdefault为词典设置默认值

测试代码

  1. cn ={}
  2. cn.setdefault(‘123‘,[]).append(‘123‘)
  3. print cn
  4. cn.setdefault(‘123‘,[]).append(‘456‘)
  5. print cn

运行结果

  1. {‘123‘:[‘123‘]}
  2. {‘123‘:[‘123‘,‘456‘]}

一次只能设置一个值,并且运行速度没有defaultdict快

通过fromkeys设置多个键的值

用法:dict.fromkeys(seq[, value])),value默认是None
说明:创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)

测试代码

  1. test_list=[‘123‘,‘456‘,‘789‘]
  2. cn ={}.fromkeys(test_list,‘abc‘)
  3. print cn

运行结果

  1. {‘123‘:‘abc‘,‘789‘:‘abc‘,‘456‘:‘abc‘}

//TODO 为何以下代码返回为空词典??

  1. test_list=[‘123‘,‘456‘,‘789‘]
  2. cn ={}
  3. cn.fromkeys(test_list,‘abc‘)
  4. print cn





Python词典设置默认值小技巧

标签:

原文地址:http://www.cnblogs.com/assd2001/p/5914781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!