Python 常用数据结构
range 迭代器
list(range(1,10))是最快的方式,比列表解析还快。
colletions使用
找出列表出现元素的次数(collections.Counter())
collections.defaultdict()
operator.itemgetter()
collections.ChainMap()
itertools.permutations()
列表解析:
还要字典解析, 集合解析
列表
元组
需要注意的是:
- 元组初始化时至于一个元素需要用 t1 =(1, ),记得添加一个
,
不然会和1
数字歧义 - 元组也可以进行
*
和+
的连接操作,这一点类似列表
字典
值得注意的是:
- 用
dict.get(key, default=-1)/dict.get(key,-1)
来寻找key的value,没有就返回-1 - 或者使用
dict.__contains__(key)
- dict的keys()和values()和items()方法都可应用
集合操作
!!!! - 字典的删除为
del dict[key]
, 清空为dict.clear()
- 我们可以看到这里虽然a.keys()支持集合的运算操作。
集合
-
细心的你注意到了 and ,or 和& ,| 是不一样的。
具体看下图:
a={1,2,3}
b={2,3,4}
你会发现,or和and是逻辑运算符。
a or b 为True, 那么返回,第一个为真的a或者b。
结合下图可以仔细想想!! -
& 和 | 和 ^ 都是位运算。值得一提的是,
异或运算
等于不进位加法
-
( A ^ B ) ^ B = A 的互逆性质