1. 序列(sequence)
1.1 基本概念
- 序列是Python中最基本的一种数据结构(如布尔型 整型 字符串等)。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引。
序列相当于一个队列,每个位置按照一定顺序站队。就如同排队站列一样,一号位站某人,二号位站某人。 - 数据结构指计算机中数据存储的方式(存东西的方式有很多种,计算机中存数据也是与生活中类似,放置的方式可以多种多样,每种不同的存放方式可以称之为数据结构)
1.2 序列的分类
- 可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
- 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)
如“python"是由“p" “y” “t” “h” “o” “n” 组成的字符串
2. 列表(list)
• 列表是Python中的一个对象
• 列表的作用
• 列表中可以保存多个有序的数据
• 列表是用来存储对象的对象
2.1 列表的使用
• 列表的创建:通过[]来创建一个空列表
#创建列表 通过[]来创建列表
lst=[] #创建了一个空的列表
print(lst,type(lst))
[] <class 'list'>
列表就相当于一个铅笔盒,可以将里面的文具按照一定顺序填入进去。也可以取出来。
lst=[1,2,3,4,5,6] #创建了一个空的列表
#一个列表当中可以存储多个元素,也可以在创建列表的时候,指定列表当中的元素
#当列表中添加多个元素时,要用","隔开
print(lst)
[1, 2, 3, 4, 5, 6]
列表可以存储任意对象,且有序输出。
lst=[1,"python",None,True,[1,2,3]]
print(lst)
[1, 'python', None, True, [1, 2, 3]]
超出最大索引范围会报错
lst=[1,2,3,4,5]
#索引
#可以通过索引(index)来获取列表当中的元素
#索引就是元素在列表中的位置 索引从0开始,列表的第一个位置是0 第二个位置是1 以此类推
print(lst[0])
print(lst[4])
print(lst[5])
1
5
Traceback (most recent call last):
File "/Users/artemisyan/PycharmProjects/study with python/Day 7/dome1.py", line 13, in <module>
print(lst[5])
IndexError: list index out of range
最大索引为4,列表长度为5
lst=[1,2,3,4,5]
print(len(lst))#5
#获取列表的长度是列表的最大索引值+1
索引可以是负数
如果索引是负数,则从后往前获取元素,-1表示倒数第一个,-2表示倒数第二个,以此类推。
lst=[1,2,3,4,5]
print(lst[-1])
print(lst[-2])
5
4
2.2 切片
如果把列表当成一块蛋糕,对此蛋糕(列表)进行切割,获得的是列表中的一部分。
- 切片是指从现有列表中获得一个子列表
- 通过切片来获取指定的元素
- 语法: 列表[起始 : 结束 : 步长]
- 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
#切片是指从现有列表当中 获取一个子列表
#语法 列表[起始:结束]
#通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
hero=["钢铁侠","绿巨人","蜘蛛侠"]
print(hero[0:1])#钢铁侠
print(hero[0:2])#钢铁侠,绿巨人
['钢铁侠']
['钢铁侠', '绿巨人']
hero=["钢铁侠","绿巨人","蜘蛛侠","黑寡妇","蚁人","美国队长"]
print(hero[2:4])
['蜘蛛侠', '黑寡妇']
做切片操作时,总会返回一个新的列表,但不会影响原来的列表。
hero=["钢铁侠","绿巨人","蜘蛛侠","黑寡妇","蚁人","美国队长"]
print(hero[2:4])
print(hero)
['蜘蛛侠', '黑寡妇']
['钢铁侠', '绿巨人', '蜘蛛侠', '黑寡妇', '蚁人', '美国队长']
- 起始位置和结束位置的索引可以不写
hero=["钢铁侠","绿巨人","蜘蛛侠","黑寡妇","蚁人","美国队长"]
print(hero[1:])
['绿巨人', '蜘蛛侠', '黑寡妇', '蚁人', '美国队长']
# 如果省略结束位置,则会从当前的开始位置一直截取到最后
hero=["钢铁侠","绿巨人","蜘蛛侠","黑寡妇","蚁人","美国队长"