list | tuple | dict | set | |
特点 | 有序、查找速度随着元素增加而逐渐下 | 有序\不能修改 | 无序、查找速度快、key不能重复 | 元素没有重复、无序、判断一个元素是否在set中速度很快 |
创建 | L =['Michael', 'Bob', 'Tracy'] | t = ('Adam', 'Lisa', 'Bart') t = (1,) t = ('a', 'b', ['A', 'B']) | d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } | s = set(['A', 'B', 'C']) |
访问 | L[0]、L[-1] | t[0]、t[-1] | 通过key访问 if 'Paul' in d: print d['Paul'] 或 d.get('Paul') | x = '???' # 用户输入的字符串 if x in weekdays: print 'input ok' else: print 'input error' |
添加元素 | 尾部添加L.append('Paul') 插入指定索引位置L.insert(0, 'Paul') | 无 | d['Paul'] = 72 | s.add(4) |
删除元素 | 删除最后一个元素并且返回L.pop() 删除指定索引的元素L.pop(2) | 无 | s.remove(4) | |
替换元素 | L[2] = 'Paul' L[-1] = 'Paul' | 无 | ||
空的 | t = () | |||
元素个数 | len(d) | |||
遍历 | for key in d: ... print key | for name in s: ... print name | ||
切片 | 取前3个元素L[0:3]从索引0开始取,直到索引3为止,但不包括索引3; 若第一个索引是0,可以省略不写L[:3]; 第三个参数表示每N个取一个,上L[::2] | |||
迭代 | L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> for index, name in enumerate(L): ... print index, '-', name | d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } print d.values() # [85, 95, 59] for v in d.values(): print v # 85 # 95 # 59 或 d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } print d.itervalues() # <dictionary-valueiterator object at 0x106adbb50> for v in d.itervalues(): print v # 85 # 95 # 59 或for key, value in d.items(): ... print key, ':', value ... Lisa : 85 Adam : 95 Bart : 59 |
不知道为什么上传不了附件。其实我整理了一个excel比较清楚的对比