Python 学习笔记(2)字典默认值和集合的操作

一、设置字典默认值

#字典的 get方法可以根据获取

value = some_dict.get(key, default_value) 

例子如下:

b_dict={"a":1,"b":3,"c":5}
myv=b_dict.get("a",)
print(myv) #结果是 1

如果key不存在,则返回None

设置默认值,setdefault 函数

关于设定值,常见的情况是在字典的值是属于其它集合,如列表。例如,你可以通过首字母,将一个列表中的单词分类:

常规方法

[123]: words = ['apple', 'bat', 'bar', 'atom', 'book']
In [124]: by_letter = {}
In [125]: for word in words:
.....: letter = word[0]
.....: if letter not in by_letter:
.....: by_letter[letter] = [word]
.....: else:
.....: by_letter[letter].append(word)
.....:
In [126]: by_letter
Out[126]: {'a': ['apple', 'atom'], 'b': ['bat', 'bar', 'book']}
 
使用setdefault,for循环部分进行如下修改:
  for word in words:
    letter = word[0]
    by_letter.setdefault(letter, []).append(word)
 
  collections模块有一个很有用的类,defaultdict,它可以进一步简化上面。传递类型或函数以生成每个位置的默认值:

  from collections import defaultdict
  words=["chris","cba","daniel","daniel.zhao"]
  by_letter = defaultdict(list) #默认字典列表?
  for word in words:
  by_letter[word[0]].append(word)
  print(by_letter.get("a"))

  out:['chris', 'cba']

二、集合

可以理解为,只有key没有value的字典

a={1,2,3,4,5,6,7,8}

或者set([1,2,2,4,5,6,7,7])

out:{1,2,4,5,6,7}

集合常用方法如下:

所有逻辑集合操作都有另外的原地实现方法,可以直接用结果替代集合的内容。对于大的集合,这么做效率更高:

In [141]: c = a.copy()
In [142]: c |= b
In [143]: c
Out[143]: {1, 2, 3, 4, 5, 6, 7, 8}
In [144]: d = a.copy()
In [145]: d &= b
In [146]: d
Out[146]: {3, 4, 5}
 

转载于:https://www.cnblogs.com/daniel-niu/p/10831647.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值