在使用索引时,太大的索引会导致错误,而用于切片时,超出范围的切片索引会被得当处理
>>> a = list('123455')
>>> a[1:34]
['2', '3', '4', '5', '5']
列表
list[::-1] 可直接实现列表逆序
list.append() 可将元素添加到尾部
list1.extend(list2) 将一个列表合并到另一个列表,等同于+=
list.insert(int,item) 在int偏移量处插入元素,如果超过了尾部,则直接添加在列表最后
list.reverse() 反转列表元素
reversed(list)函数也可以反转列表
删除列表元素
del语句删除指定位置元素
del list[-1] #删除列表尾部元素
list.remove(item)删除指定值的元素,删除列表中第一个等于item的元素
>>> mylist = ['a','b','a']
>>> mylist.remove('a')
>>> mylist
['b', 'a']
list.pop(int)获取返回并删除指定位置的元素,int参数默认为-1
list.count(item) 记录特定值出现在列表中的次数
使用str.join(list)转换为字符串
重排元素
列表方法list.sort()对原列表重排,改变原列表的内容
函数sorted(iterable)返回排序好的列表,原列表不变
排序要求列表为同一类型,或者可以自动转换——整数或浮点数
默认排序为升序,可以指定reverse=True参数,改为降序
列表赋值
如果将列表赋值为多个变量,修改任意变量会造成其他变量对应的值也被修改
多个变量实际都是指向一个对象
复制列表
list.copy()
a = b.copy()
list()转换函数 a = list(b)
列表分片 a = b[:]
元组
元组,不可变序列,tuple()
构造包含0个或1个元素的元组
空的元组通过一对空的圆括号构造;
只有一个元素的元组通过一个元素跟随一个逗号构造(仅用圆括号把一个值括起来是不够的)
通用序列操作
x in s 如果s包含x,返回True,否则返回Falsex not in s 如果s包含x,返回False,否则返回True
len(s) s的长度
min(s) s的最小项
max(s) s的最大项
sum(s,[initial]) 各项的和,initial为初始值
all(s) 检查s中各项是否为True
any(s) 检查s中的任一项是否为True
s*n 相当于将s添加到自身n次
字典
字典{},dict()可将包含双值子序列的序列转化为字典
字典的键为不可变类型
>>> seq = [['a','b']] #(['a','b']) | ['ab']
>>> dict(seq)
{'a': 'b'}
dict1.update(dict2)合并字典
如果dict1和dict2含有同样的键,新值会取代原值
dict.get(key,def_values)获取key键的值,如果没有key键,则返回default_values
dict.setdefault(key,def_values)
如果找到dict[key],则返回dict[key],否则返回def_values,并将dict[key]设置为def_values
dict.keys() 获取所有的键
dict.values() 获取所有的值
dict.items() 获取所有的键值对,每个键值以元组形式返回
返回为建值的迭代形式dict_keys([]),dict_values([]),dict_items([ ('k','v'), ])
可使用list()函数将获取的值转换为列表
使用del语句是删除指定键的元素
dict.pop(key[, default]) 如果key在字典中,删除并返回值,否则返回default,如果没有default则默认返回None,不会引发KeyError
dict.popitem() 从字典中移除并返回任意一个键值对,如果字典为空,则引发KeyError
dict.clear() 删除所有元素
in语句判断某个键是否在字典中
使用=赋值,dict.copy()复制
类方法 dict.fromkeys(seq[,value=None]) 以序列seq中的元素作为键,value参数为值创建一个新字典
集合
集合set为没有重复元素的无序容器
可用于成员资格测试或消除重复条目
花括号或set()函数可创建集合
创建一个空集合必须使用set(),{}会创建一个空字典
集合中包含的元素都为不可变类型
set.add(elem) 添加元素elem到集合
set.remove(elem) 从集合中移除元素elem。如果elem不包含在集合中,引发KeyError
set.discard(elem) 从集合中移除元素elem,如果它存在
set.pop() 从集合中移除并返回任意元素。如果此集合为空,则引发KeyError
set.clear() 从集合中移除所有元素
逻辑方法
& 或者set.intersection(set)获取集合的交集
| 或者 set.union(set)来获取集合的并集
- 或者set.difference(set)来获得两个集合的差集
^ 或者set.symmetric_difference(set)来获取两个集合的异或集(仅在两个集合中出现过一次)
<= 或者set.issubset(set)判断一个集合是否是另一个集合的子集
< 判断第一个是否是第二个的真子集
>= 超集,>真超集