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'>

posted on 2020-04-04 22:15  啊哈彭  阅读(944)  评论(0编辑  收藏  举报

导航