Python基本数据类型之容器(列表、元组、集合、字典)
Python基础数据类型可以用一张图表示,这里只讲列表、元组、集合、字典四种。
1、列表
dir()用来查询一个类或者对象所有属性,可以查列表支持的功能:
1)创建列表:
>>> a=[1,2,3,4,5,6] >>> a [1, 2, 3, 4, 5, 6] >>> type(a) <class 'list'>
2)访问列表与切片:
>>> print(a) [1, 2, 3, 4, 5, 6] >>> a[0] 1 >>> a[0:3] [1, 2, 3] >>> a[:-2] [1, 2, 3, 4] >>> a[0]=999 >>> a [999, 2, 3, 4, 5, 6]
3)更新列表
直接加,把两个列表合并成一个。
>>> b=['a', 'b','c'] >>> b ['a', 'b', 'c'] >>> c=a+b >>> c [999, 2, 3, 4, 5, 6, 'a', 'b', 'c'] >>> a.append([11,22]) >>> a [999, 2, 3, 4, 5, 6, [11, 22]]
可见append()的参数被视为对象,将所有的参数视为一个列表元素插入到列表尾部。
如果把两个列表连接为1个列表,可以使用extend。extend()会将传入的参数视为列表,并将该列表的每个元素一一逐个插入到原列表尾部。
>>> a [999, 2, 3, 4, 5, 6] >>> a.extend(b) >>> a [999, 2, 3, 4, 5, 6, 'a', 'b', 'c'] 4)插入数据 >>> a=[1,2,3,4] >>> a [1, 2, 3, 4] >>> a.insert(2,'a') >>> a [1, 2, 'a', 3, 4] >>> a.insert(2,['c',"hello"]) >>> a [1, 2, ['c', 'hello'], 'a', 3, 4]
2、元组
元组和列表类似,但是元组的元素不能添加,不能删除,不能修改,只能查询。
列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义。
>>> t=(1) >>> t 1 >>> type(t) <class 'int'> >>> t2=(1,) >>> t2 (1,) >>> type(t2) <class 'tuple'>
元组中的元素不能改变,但是可以组合元祖为新的元组。
>>> a=(1,2) >>> b=('c','d') >>> c=a+b >>> c (1, 2, 'c', 'd')
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组.
>>> b ('c', 'd') >>> del b >>> b Traceback (most recent call last): File "<pyshell#197>", line 1, in <module> b NameError: name 'b' is not defined
3、集合
集合(set)是一个无序的不重复元素序列。集合是无序的存储结构,集合内的数据没有先后关系。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
>>> a={1,2} >>> a {1, 2} >>> type(a) <class 'set'> >>> b={} >>> type(b) <class 'dict'>
将元素 x 添加到集合 a 中,如果元素已存在,则不进行任何操作。
>>> a {1, 2} >>> a.add(1) >>> a {1, 2}
集合支持交集、并集、补集、子集、超集计算。
>>> a={1,2,3} >>> b={1,2,4,5} >>> a & b {1, 2} >>> a|b {1, 2, 3, 4, 5} >>> a-b {3} >>> >>> a {1, 2, 3} >>> c {1, 2} >>> c<a True >>> a>c True
4、字典
Python字典是另一种可变容器模型,且可存储任意类型对象。字典由键和其对应的值构成的键—值对组成,基本语法为:
>>> d={'A':10, 'B':11} >>> d {'A': 10, 'B': 11} >>> type(d) <class 'dict'>
字典的增删改查:
>>> a {0: 1, 'b': 2, 'name': 'Jonh'} >>> a.pop(0) 1 >>> a {'b': 2, 'name': 'Jonh'} >>> a.pop("name") 'Jonh' >>> a {'b': 2}
字典的特点:
1)key不能重复,否则第二个值覆盖第一个
>>> d={1:1,1:2, 2:3, 3:4} >>> d {1: 2, 2: 3, 3: 4}
2)key不可变,值可变。键可以用数、字符串、元组充当,但不能是列表。
>>> a={[a]:1} Traceback (most recent call last): File "<pyshell#325>", line 1, in <module> a={[a]:1} TypeError: unhashable type: 'list' >>> a={"dfaf":1} >>> a >>> a={"dfaf":1} >>> a {'dfaf': 1} >>> b={(1):2} >>> b {1: 2} >>> type(b) <class 'dict'>