'''
序列是python中最基本的一种数据结构,序列用于保存一组有序的数据,所有的数据在序列中都有一个唯一的位置(索引),并序列中的数据会按照添加的顺序来分配索引
序列分为可变和不可变序列;可变序列:列表 list,元素可改变; 不可变序列:字符串 str 和元祖 tuple
'''
# 列表的创建 [],列表中元素用,隔开
studylist = [] # 创建空列表
studylist = [10] # 创建只包含一个元素的列表
studylist = [10, 'hello', True, [123], print] # 创建包含任意对象的列表
# 通过索引获取列表的元素 索引从0开始 1 2 3...以此类推;索引可以是负数,表示从后向前获取元素,-1表示倒数第一,-2表示倒数第二
list1 = [10, 20, 30, 40, 50]
print(list1[2]) # 输出30
print(list1[5]) # 索引超出最大范围,抛出异常,list index out of range
print(list1[-1]) # 输出50
# 列表的切片,切片指从现有列表中获取一个子列表。通过切片可以获取指定的元素
# 语法:列表[起始:结束:步长],起始和结束可省略,切片包括起始位置的元素,不包括结束位置的元素,步长默认1,步长可为负数,表示从后向前;
stus = ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
# 列表的索引可以是负数
print(stus[-2]) # 输出jack
# 通过切片获取指定元素
print(stus[1:]) # 起始位置1,位置0去掉,输出['lili', 'hmm', 'tom', 'jack', 'helen']
print(stus[:3]) # 到位置3截止,输出['lucky', 'lili', 'hmm']
print(stus[:]) # 相当于创建列表的副本。输出['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
print(stus) # 输出列表['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
print(stus[0:5:3]) # 包括起始位置+第三个位置,输出['lucky', 'tom']
print(stus[::-1]) # 从后向前输出,['helen', 'jack', 'tom', 'hmm', 'lili', 'lucky']
# print(stus[::0]) # 步长不能为0,报错:ValueError: slice step cannot be zero
# 列表的修改,法一:可通过索引来修改
names = ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
print('修改前:', names) # 修改前: ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
names[0] = '小红'
names[4] = '李明'
print('修改后:', names) # 修改后: ['小红', 'lili', 'hmm', 'tom', '李明', 'helen']
# 列表的修改,法二:通过切片修改元素
names = ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
# 使用新的元素替换旧元素
names[0:2] = ['小红', '李明']
print('修改后:', names) # 0和1位置元素替换,修改后: ['小红', '李明', 'hmm', 'tom', 'jack', 'helen']
# 多出的新元素插入列表中
names[0:2] = ['小红', '李明', '小王']
print('修改后:', names) # 修改元素数>原位置数,插入列表依次后移。修改后: ['小红', '李明', '小王', 'hmm', 'tom', 'jack', 'helen']
# 向索引为0的位置插入元素
names[0:0] = ['张飞']
print('修改后:', names) # 插入元素。修改后: ['张飞', '小红', '李明', '小王', 'hmm', 'tom', 'jack', 'helen']
# 设置步长,序列的元素个数需和切片元素个数一致,如果不一致,则报错
names[::2] = ['小一', '小二', '小三', '小四'] # 如names已有8个元素,步长2,应修改4个数,如果元素不等于4,则报错
print('修改后:', names) # 修改后: ['小一', '小红', '小二', '小王', '小三', 'tom', '小四', 'helen']
# 列表的删除,可通过切片删除列表元素: del [起始:结束:步长]
stus = ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
del stus[0:2] # 删除索引为0、1的列表元素
print(stus) # 输出:['hmm', 'tom', 'jack', 'helen']
stus = ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
del stus[::2] # 删除索引为0,2,4的元素
print(stus) # 输出:['lili', 'tom', 'helen']
stus = ['lucky', 'lili', 'hmm', 'tom', 'jack', 'helen']
del stus[1:3] # 删除索引为1,2的元素
print(stus) # 输出:['lucky', 'tom', 'jack', 'helen']
python学习-列表1(列表的增删改)
最新推荐文章于 2023-09-17 13:32:41 发布