python学习-列表1(列表的增删改)

本文详细介绍了Python中列表的基本操作,包括创建、访问元素(正向与负向索引、切片)、修改元素(直接赋值、切片替换)以及删除元素(使用`del`关键字)。示例代码涵盖了各种常见操作,帮助读者深入理解列表这一重要的数据结构。
摘要由CSDN通过智能技术生成
'''
序列是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']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值