Python中的一些小技巧
Python中的一些小技巧
AllenOR灵感 发表于6个月前
Python中的一些小技巧
  • 发表于 6个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   


给dict设置默认值


给所有的key的默认值设置为[],包括新添加的key

from collections import defaultdict
dic = defaultdict(list)

setdefault一次只能设置一个值,但好处是能使用链式语法,但是defaultdict更加快一点。

dic = {}
dic.setdefault("name_list", []).append('Tom')

使用fromkeys,用法 dict.fromkeys(seq[, value]),value默认是国际惯例的 None。

name_list = ['Tom', 'John']
dic = {}.fromkeys(name_list, 3)
# {'Tom': 3, 'John': 3}

dic = dict.fromkeys([1,2], True)
# {1: True, 2: True}

列表去重的快速方法

这种去重方法比用set更快。

mylist = [1,2,3,4,3,2,1,2,3,2,4]
list = {}.fromkeys(mylist).keys()
# list = [1,2,3,4]

列表深复制

a = [1,2,3]
b = a[:]

使用map作iterator

当将function设置为None时,可起到iterator的作用,结果类似于使用了zip,唯一不同的是map可以按照最长的列表扩展。

map(None, xrange(3), xrange(10, 12))
# [(0, 10), (1, 11), (2, None)]

zip(xrange(3), xrange(10, 12))
# [(0, 10), (1, 11)]

dict 删除 key

如果要删除的key数量较多(超过一半)的话,建议重新生成dict;如果数量较少,在pop和del都可以的情况下,建议使用del,这个比较快一点。


做循环的时候,尽量使用xrange()函数

xrange与range的用法完全相同,但是 range() 返回的是一个列表,而xrange() 返回的是一个生成器。在返回很大的值的时候,使用xrange的性能比较好。


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 6
博文 2139
码字总数 82983
×
AllenOR灵感
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: