手记

Python集合(list、tuple、dict、set)

list
取list内容
1)正序取(从0开始,注意要小于list长度)
IndexError是数组越界错误

>>> L = ['a','b','c']
>>> print L[0]
a
>>> print L[2]
c
>>> print L[3]
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
IndexError: list index out of range

2)倒序取(从-1开始)

>>> L=['a','b','c']
>>> print L[-1]
c
>>> print L[-3]
a
>>> print L[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

list操作(增删改)
L = [‘a’,‘b’,‘c’] M=[1,2]

例子 结果 说明
增加 L.append(‘d’) [‘a’,‘b’,‘c’,‘d’] 在末尾追加数据
L.insert(2,‘d’) [‘a’,‘b’,‘d’,‘c’] 在指定位置插入数据
L.extend(M) [‘a’,‘b’,‘c’,1,2] 将列表M的数据追加到列表L
修改 L[2]=‘d’ [‘a’,‘b’,‘d’] 修改指定索引的数据
删除 del L[2] [‘a’,‘b’] 删除指定索引的数据(索引<L的长度)
del L[:] [] 清空
L.pop() [‘a’,‘b’] 删除末尾数据,返回删除的值
L.pop(2) [‘a’,‘b’] 删除指定索引的数据,返回删除的值(索引<L的长度)
L.remove(‘c’) [‘a’,‘b’] 删除第一个出现的指定数据
长度 len(L) 3 列表长度
次数 L.count(‘a’) 1 数据在列表中出现的次数
排序 L.sort() [‘a’,‘b’,‘c’] 升序排序
L.sort(reverse=True) [‘c’,‘b’,‘a’] 降序排序
L.reverse() [‘c’,‘b’,‘a’] 反转
遍历 for name in L: print name 通过for-in遍历list

tuple

  1. tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
  2. tuple的取值跟list一样,也可以通过负数取值
  3. python 规定,单元素 tuple 要多加一个逗号“,”,例子:t = (1,)
  4. tuple中存在list,list是可变的

dict
花括号 {} 表示这是一个dict,无序,形式 key: value。最后一个 key: value 的逗号可以省略。通过Key取value。
d = {‘a’:1,‘b’:2,‘c’:3} e={‘a’:10,‘d’:20}

例子 结果 说明
查询 d[‘a’] 1 通过 key 来查找 value(key在d中要存在)
d.get(‘a’) 1 通过 key 来查找 value(key不存在时返回none)
d.get(‘e’,‘c’) ‘c’ 通过 key 来查找 value(key不存在时返回’c’)
遍历 for key in d: print key,’:’,d.get(key) 通过for-in遍历字典拿到的是key和value值
增加 d[‘d’]=4 {‘a’:1,‘c’:3,‘b’:2,‘d’:4} key必须是在d中不存在的
修改 d[‘c’]=‘c’ {‘a’:1,‘c’:‘c’,‘b’:2} key必须是在d中存在的
删除 del d[‘c’] {‘a’: 1, ‘b’: 2} 通过key删除键值对(key必须是在d中存在的)
d.pop(‘c’) {‘a’: 1, ‘b’: 2} 通过key删除键值对,返回删除的值(key必须是在d中存在的)
d.clear() {} 清空
长度 len(d) 3 获取键值对的个数
复制 dcopy = d.copy() {‘a’: 1, ‘c’: 3, ‘b’: 2} 将d中的键值对复制一份给dcopy
创建 d1 = d.fromkeys(‘abc’, 1) d1的结果:{‘a’: 1, ‘c’: 1, ‘b’: 1} d的结果:{‘a’: 1,‘b’:2,‘c’:3}
d1=d.fromkeys([‘a’,‘b’,‘c’],(1,2)) d1的结果:{‘a’: (1, 2), ‘c’: (1, 2), ‘b’: (1, 2)} d的结果:{‘a’: 1,‘b’:2,‘c’:3}
方法 d.keys() [‘a’, ‘c’, ‘b’] 返回所有键对应的序列
d.values() [1, 3, 2] 返回所有值对应的序列
d.items() [(‘a’, 1), (‘c’, 3), (‘b’, 2)] 将每个键值对转换成元祖,作为一个序列的元素
.setdefault() d中有key返回查询的结果,没有key将会添加键key并将值设为None或者value
d.setdefault(‘a’) 返回值是:1 d的结果是:{‘a’:1,‘c’:‘c’,‘b’:2}
d.setdefault(‘d’) 返回值是:none d的结果是:{‘a’: 1, ‘c’: 3, ‘b’: 2, ‘d’: None}
d.setdefault(‘e’,5) 返回值是:5 d的结果是:{‘a’: 1, ‘c’: 3, ‘b’: 2, ‘e’: 5}
d.update(e) d的结果:{‘a’: 10, ‘c’: 3, ‘b’: 2, ‘d’: 20} 把e的键值对更新到d里,不存在的键值对则进行添加

set
set是无序集合,没法通过索引来访问。更新set主要做两件事:
一是把新的元素添加到set中,二是把已有元素从set中删除。
L = set([‘a’,‘b’,‘c’])

例子 结果 说明
增加 L.add(‘d’) set([‘a’, ‘c’, ‘b’, ‘d’]) 添加数据
删除 L.remove(‘c’) set([‘a’, ‘b’]) 删除指定数据(要在L中存在)
长度 len(L) 3 列表长度
遍历 for name in L: print name 通过for-in遍历set
0人推荐
随时随地看视频
慕课网APP