前言
列表(list)、元组(tuple)、字典(dict)、集合(set) 是Python的四种基本数据类型。
列表(list)
列表(list)是Python内置的一种数据类型。list是一种有序的集合,可以随时添加和删除其中的元素。
创建列表
用方括号[ ]表示列表,创建一个名为name的列表
>>> name = ['Bob', 'Tom', 'Lucy', 'Beller']
>>> name
['Bob', 'Tom', 'Lucy', 'Beller']
使用type()函数,可以看到name的类型为list
>>> type(name)
<class 'list'>
使用len()函数,可以得到list的长度
>>> len(name)
4
访问列表
可以用索引来访问list中每一个位置的元素,索引是从0开始的
>>> name[0]
'Bob'
>>> name[3]
'Beller'
可以用-1表示倒数第一个,-2,-3…依次类推
>>> name[-1]
'Beller'
>>> name[-4]
'Bob'
当索引超出范围时,Python会报错
>>> name[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
list和tuple都有切片方法,语法格式为(截取的元素包括start,不包括end)
list_name[start, end]
如:
>>> name[0:3]
['Bob', 'Tom', 'Lucy']
>>> name[-4:-1]
['Bob', 'Tom', 'Lucy']
如果start或者end为空,则默认为第一个元素或者最后一个元素
>>> name[:2]
['Bob', 'Tom']
>>> name[:]
['Bob', 'Tom', 'Lucy', 'Beller']
修改列表
添加元素
直接用append()在列表尾添加
>>> name.append("Josh")
>>> name
['Bob', 'Tom', 'Lucy', 'Beller', 'Josh']
用insert()向指定位置添加,第一个参数是索引,第二个参数是要插入的值
>>> name.insert(1, 'Josh')
>>> name
['Bob', 'Josh', 'Tom', 'Lucy', 'Beller']
用extend()在列表尾添加许多个元素
>>> name.extend(['Josh', 'Mary'])
>>> name
['Bob', 'Tom', 'Lucy', 'Beller', 'Josh', 'Mary']
删除元素
remove(),参数为元素值
>>> name.remove('Bob')
>>> name
['Tom', 'Lucy', 'Beller']
pop(),参数为元素索引值,默认为列表末尾
>>> name.pop()
'Beller'
>>> name
['Bob', 'Tom', 'Lucy']
元组(tuple)
tuple和list非常类似,也是一个有序列表,但是tuple一旦初始化就不能修改,所以它没有list的那些修改的方法
创建元组
用圆括号( )表示列表,创建一个名为name的元组
>>> name = ('Bob', 'Tom', 'Lucy', 'Beller')
>>> name
('Bob', 'Tom', 'Lucy', 'Beller')
>>> type(name)
<class 'tuple'>
>>> len(name)
4
注意!
如何定义一个只有一个元素的tuple:
>>> number = (1)
>>> type(number)
<class 'int'>
>>> number = (1, )
>>> type(number)
<class 'tuple'>
可以看出,需要在仅有的那个元素后面加上逗号
访问元组
同list
字典(dict)
dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度
创建字典
用花括号{}表示字典({key1:value1, key2:value2, …}),创建一个名为name_age的字典:
>>> name_age={'Bob':22, 'Tom':14, 'Lucy':18, 'Beller':20}
>>> name_age
{'Bob': 22, 'Tom': 14, 'Lucy': 18, 'Beller': 20}
>>> type(name_age)
<class 'dict'>
>>> len(name_age)
4
注意!
重复元素会被字典过滤掉
>>> t = {1:1, 2:2, 1:1}
>>> t
{1: 1, 2: 2}
访问字典
通过key值访问
>>> name_age['Tom']
14
通过get()访问,第一个参数值为key值,为避免错误,第二个参数值为出现错误时的返回值
>>> name_age.get('Tom')
14
>>> name_age.get('West', 1)
1
通过for循环遍历整个字典,keys,values,items
>>> for key in name_age.keys():
... print(key)
...
Bob
Tom
Lucy
Beller
>>> for value in name_age.values():
... print(value)
...
22
14
18
20
>>> for key, value in name_age.items():
... print(key, value)
...
Bob 22
Tom 14
Lucy 18
Beller 20
删除元素
pop(),参数为key值,同时对应的value也会被删除
>>> name_age.pop('Tom')
14
>>> name_age
{'Bob': 22, 'Lucy': 18, 'Beller': 20}
集合(set)
集合和字典类似,是一组key的集合,但是不存储value
创建集合
>>> s = set([1, 2, 3, 4, 5])
>>> s
{1, 2, 3, 4, 5}
>>> type(s)
<class 'set'>
添加元素
add(key),重复添加会被过滤
>>> s.add(6)
>>> s
{1, 2, 3, 4, 5, 6}
删除元素
remove(key)
>>> s.remove(5)
>>> s
{1, 2, 3, 4}
交集、并集
集合可以看成数学意义上的集合,同样有交集并集的特性
>>> s1 = {1, 2, 3}
>>> s2 = {3, 4}
>>> s1&s2
{3}
>>> s1|s2
{1, 2, 3, 4}