元组 tuple
- 定义:t = () t = (1,2,3,4,'aaa',[1,2,3])
- 支持下标、切片操作
- 元组是不可变对象,不可以对元组的内容做修改,但是元组中的有列表的话可以修改列表的内容
- 可以index、count操作,如t.index('a') 显示在元组中的下标 t.count('a')显示在元组中的个数
集合 set
- 集合的元素不重复(python中是根据每个元素的hash值来判断是否重复,只要可hash就可以作为集合的元素,列表不可以作为集合的元素)
- 定义:s = {1,2,3} 不能定义空集
- 不支持切片(因为集合是无序的)
- s.add(444)增加到集合中
- s.update([1,2,3])将迭代器增加到集合中
- s.remove('a')删除这个元素,没有的话会报错
- s.discard('aa')存在删除,不存在不报错
- s.pop()随机删掉一个元素
- s.clear()清楚集合元素
- s1.difference(s2) 返回差集,s1中出现的,s2中不出现的 s1-s2
- s1.difference_update(s2) 不返回差集,即 s1 = s1-s2
- s1.intersection(s2) 交集 s1&s2
- s1.union(s2) 并集 s1|s2
- s1.isdisjoint(s2) 是否没有交集,返回值为bool值,没有交集返回True
- s1.issubset(s2) s1是不是s2的子集
迭代器 iterator
- 定义: li = [1,2,3,4,5,6] it = iter(li) it.next()下一个
for x in li
print x
就是利用了迭代器
字典 dict
- 定义:d = {'a':1,'b':2,'c':'hello'}
- 字典中的key不可以重复,且必须是可hash的
- d.keys() 将字典中所有的key作为列表返回
- d.iterkeys() 将字典中所有的key作为一个迭代器返回
- d.values() 将字典中的额所有value作为列表返回
- d.has_key('a') 判断是否存在key 返回True
- d.get('a') 按照key的取值,若存在则返回,不存在则返回None,还可以d.get('a',x) ,不存在即返回x
- d.update({'a':100,'e':'xxx'}) 存在则更新,不存在则增加
- d2 = d.copy() 深度复制一个字典给另一个
- id(d) 查看该字典id(一样的话就是指向同一个内存空间)
- d.items() 返回一个列表,列表中是字典中的每个key以及对应的value
列表解析
- [expression for item in iterator if condition]
不带条件:
一个条件:
- [expression for item in iterator if conditionX if conditionY]
多个条件:条件都得满足
- [expr for x in IterX for y in Itery]
笛卡尔积