list
- 有序集合,随时增删。
-
append(y)
在列表尾部追加单个对象y。使用多个参数会引起异常。 -
count(y)
返回对象y在列表中出现的次数。 -
extend(L)
将列表L中的表项添加到列表中。返回None。 -
index(y)
返回列表中匹配对象y的第一个列表项的索引。无匹配元素时产生异常。 -
insert(i,y)
在索引为i的元素前插入对象y。如list.insert(0,y)在第一项前插入对象。返回None。 -
pop(i)
删除列表中索引为i的表项,并返回该表项的值。若未指定索引,pop返回列表最后一项。 -
remove(y)
删除列表中匹配对象y的第一个元素。无匹配元素时产生异常,返回None。 -
reverse()
颠倒列表元素的顺序。 默认值为False,要想颠倒列表元素顺序,则设为True -
sort()
对列表排序,返回none。bisect模块可用于排序列表项的添加和删除。
tuple
- 有序列表,一旦初始化,无法修改。
- 因为代码不可变,所以代码更安全。如果可能,能用
tuple
代替list
就尽量用tuple
。 - 可变
tuple
:m = ('aa', 'bb', ['AA', 'BB']) m[2][0] = 'XX' m[2][1] = 'YY' print(m) ('aa', 'bb', ['XX', 'YY']) # tuple包含一个list元素,因为list类型变量是可变性变量,所以从始到末,tuple指向的list没有改成别的list.
dict
- 键值对儿方式存储,查找速度快,没有顺序。
key
必须是不可变对象(str, int, float, tuple)。 - key必须是哈希的,可以利用
hash
方法测试。
- dict.keys()
- dict.values()
- dict.items()
- dict.pop()
dict VS list
字典具有下面的特点: 1. 查找和插入的速度极快,不会随着key的增加而增加;2. 需要占用大量的内存,内存浪费多(用空间换时间)。
列表具有下面的特点:1. 查找和插入的时间随着元素的增加而增加;2. 占用空间小,浪费内存很少(用时间换空间)。
set
- 无序集合,
key
不重复。 - The elements of a set must be hashable.
-
set.add()
:adds an individual element to the set. -
set.update()
:pass multiple iterables to it and it will iterate all iterables and will include the individual elements in the set. -
remove(elem)
: Remove element elem from the set. Raises KeyError if elem is not contained in the set. -
discard(elem)
: Remove elementelem
from the set if it is present. -
<
<=
表示 子集,>
>=
表示超集 -
|
表示联合,&
表示交集 ,-
表示差集,^
差分集