第四章 组合数据类型
4.1 列表
4.1.1 列表的表达
- 序列类型:内部元素有位置关系,能通过位置序号访问其中元素
- 列表是一个可以使用多种类型元素,支持元素的增、删、查、改操作的序列类型
ls = ["Python", 1989, True, {
"version": 3.7}]
ls
['Python', 1989, True, {'version': 3.7}]
- 另一种产生方式:list(可迭代对象)
- 可迭代对象包括:字符串、元组、集合、range()等
字符串转列表
list("人工智能是未来的趋势")
['人', '工', '智', '能', '是', '未', '来', '的', '趋', '势']
元组转列表
list(("我", "们", "很", "像"))
['我', '们', '很', '像']
集合转列表
list({
"李雷", "韩梅梅", "Jim", "Green"})
['Green', 'Jim', '李雷', '韩梅梅']
特殊的range()
for i in [0, 1, 2, 3, 4, 5]:
print(i)
0
1
2
3
4
5
for i in range(6):
print(i)
0
1
2
3
4
5
- range(起始数字,中止数字,数字间隔)
如果起始数字缺省,默认为0
必须包含中止数字
数字间隔缺省,默认为1
for i in range(1, 11, 2):
print(i)
1
3
5
7
9
- range()转列表
list(range(1, 11, 2))
[1, 3, 5, 7, 9]
4.1.2 列表的性质
- 列表的长度——len(列表)
ls = [1, 2, 3, 4, 5]
len(ls)
5
- 列表的索引——与同为序列类型的字符串完全相同
变量名[位置编号]
正向索引从0开始
反向索引从-1开始
cars = ["BYD", "BMW", "AUDI", "TOYOTA"]
print(cars[0])
print(cars[-1])
BYD
TOYOTA
- 列表的切片
变量名[开始位置:结束位置:切片间隔]
cars = ["BYD", "BMW", "AUDI", "TOYOTA"]
- 正向切片
print(cars[:3]) # 前三个元素,开始位置缺省,默认为0;切片间隔缺省,默认为1
['BYD', 'BMW', 'AUDI']
print(cars[1:4:2]) # 第二个到第四个元素 前后索引差为2
['BMW', 'TOYOTA']
print(cars[:]) # 获取整个列表,结束位置缺省,默认取值到最后
['BYD', 'BMW', 'AUDI', 'TOYOTA']
print(cars[-4:-2]) # 获取前两个元素
['BYD', 'BMW']
- 反向切片
cars = ["BYD", "BMW", "AUDI", "TOYOTA"]
print(cars[:-4:-1]) # 开始位置缺省,默认为-1
print(cars[::-</