Python--列表的增删改查

一.增

1)列表.append(元素)

  • 指定列表的最后添加指定的元素
games = ['王者荣耀', '英雄联盟', '和平精英', '原神']
print(games)

games.append('开心消消乐')
print(games)

 案例1:提取scores中所有不低于80分的成绩

scores = [89, 78, 99, 34, 67, 77, 80, 82, 85, 90, 55]
# [89, 99, 80, 82, 85, 90]
scores1 = []
for x in range(len(scores)):
    if scores[x] >= 80:
        scores1.append(scores[x])
print(scores1)

案例2:将scores中所有低于60分的成绩变成’补考‘

scores = [89, 78, 99, 34, 67, 77, 80, 82, 85, 90, 55]
scores2 = []
# [89, 78, 99, '补考', 67, 77, 80, 82, 85, 90, '补考']
for x in range(len(scores)):
    if scores[x] < 60:
        scores2.append('补考')
    else:
        scores2.append(scores[x])
print(scores2)

2)列表.insert(下标,元素)

  • 将指定的元素插入到指定下标的元素前
games = ['王者荣耀', '英雄联盟', '和平精英', '原神']
print(games)

games.insert(1, '开心消消乐')
print(games)

 二.删

1)del 列表[下标]

  • 删除列表指定下标对应的元素
tvs = ['亮剑', '甄嬛传', '如懿传', '爱情公寓', '知否', '康熙王朝', '三国演义', '流星花园', '武林外传']
print(tvs)

del tvs[3]
print(tvs)

del tvs[4]
print(tvs)

2)列表.remove(元素)

  • 删除列表中的指定元素(如果元素不存在会报错,如果元素有多个,则删除最前面的元素)
tvs = ['亮剑', '甄嬛传', '如懿传', '爱情公寓', '知否', '康熙王朝', '三国演义', '流星花园', '武林外传']
print(tvs)

tvs.remove('爱情公寓')
print(tvs)

3)

a.列表.pop()
  • 取出列表最后一个元素并返回
b.列表.pop(下标)
  • 取出列表中指定对应下标的元素并返回
tvs = ['亮剑', '甄嬛传', '如懿传', '爱情公寓', '知否', '康熙王朝', '三国演义', '流星花园', '武林外传']
print(tvs)

result = tvs.pop()
print(tvs, result)

 三.改

1.列表[下标] = 数据

  • 将列表中指定下标的元素改为指定的数据
tvs = ['亮剑', '甄嬛传', '如懿传', '爱情公寓', '知否', '康熙王朝', '三国演义', '流星花园', '武林外传']
print(tvs)

tvs[2] = '海贼王'
print(tvs)

 四.查

1.查单个

  • 列表[索引] - 获取指定索引对应的元素

2.切片

  • 一次获取列表中的多个元素
 1)完整语法
'''
1)完整语法:
列表[开始下标:结束下标:步长]

2)怎么确定切片的结果
第一步:看切片的结果是否为空(从开始下标到结束下标的方向和步长对应的方向是否一致,不一致结果肯定为空)
第二步:确定有效范围(开始下标的位置能取到,结束下标对应的元素取不到)
第三步:在有效范围安装步长来获取元素。
       步长的正负:步长为正在有效范围内从前往后取,步长为负在有效的范围内从后往前取
       步长的绝对值:绝对值为1,就一个一个取;绝对值为2,隔一个取一个
       
3)切片的代码怎么写
确定开始下标的值:需要获取的结果中的第一个元素对应的下标
确定结束下标的值:需要获取的结果中的最后一个元素的后面那个元素或者前面那个元素的下标(看获取方向)
确定步长:确定方向(从前往后取步长为正,否则为负)和绝对值(一个一个取绝对值为1)

'''
 如何确定切片的结果
movies = ['筑梦演艺圈', '上海堡垒', '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙', '消失的她']
print(movies[1:4:2])       # ['上海堡垒', '无名之辈']
print(movies[-1:2:1])      # []
print(movies[0:-2:-1])     # []
print(movies[-1:1:-2])     # ['消失的她', '十面埋伏', '鲨卷风']
print('------------------------SAN石-------------------------')


print(movies[-5:-1:1])          # '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙'
print(movies[0:-2:3])           # '筑梦演艺圈', '无名之辈'
print(movies[-2:1:-1])          # '蜘蛛侠-纵横宇宙', '十面埋伏', '无名之辈', '鲨卷风'
print(movies[2:-2:-2])          # []
print(movies[1:-1:4])           # '上海堡垒', '蜘蛛侠-纵横宇宙'
print('------------------------SAN石-------------------------')
 切片的代码怎么写
'上海堡垒', '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙'
print(movies[1:-1:1])
# '蜘蛛侠-纵横宇宙',  '十面埋伏', '无名之辈', '鲨卷风'
print(movies[-2:1:-1])
# '上海堡垒', '十面埋伏'
print(movies[1:-2:3])
# '消失的她', '十面埋伏', '鲨卷风'
print(movies[-1:1:-2])
 2)切片的省略写法
'''
a.省略步长   -   步长就是1
列表[开始下标:结束下标]

b.省略开始下标   -   从头开始取(头可能是第一个元素,也可能是最后一个元素,由步长决定)
列表[:结束下标:步长]

c.省略结束下标   -   从开始下标开始一直到最后一个元素或者第一个元素(步长正负决定)
列表[开始下标::步长]
'''
省略步长
movies = ['筑梦演艺圈', '上海堡垒', '鲨卷风', '无名之辈', '十面埋伏', '蜘蛛侠-纵横宇宙', '消失的她']
print(movies[2:-2])           # ['鲨卷风', '无名之辈', '十面埋伏']
print(movies[-1:1])           # []
省略开始下标
print(movies[:3:1])           # ['筑梦演艺圈', '上海堡垒', '鲨卷风']
print(movies[:3:-2])          # ['消失的她', '十面埋伏']
省略结束下标
print(movies[2::2])           # ['鲨卷风','十面埋伏','消失的她']
print(movies[3::-1])          # ['无名之辈', '鲨卷风', '上海堡垒', '筑梦演艺圈']
print(movies[-3:])            # ['十面埋伏', '蜘蛛侠-纵横宇宙', '消失的她']
print(movies[::-2])           # ['消失的她', '十面埋伏', '鲨卷风', '筑梦演艺圈']

3.遍历

'''
方法1: 直接获取元素
for 变量 in 列表:
    循环体(变量依次取到的就是列表中的每个元素)
    
方法2: 先获取每个元素的下标值,然后再根据下标获取元素
for 变量 in range(len(列表)):
    循环体(变量依次取到的就是列表中的下标值)

方法3: 同时获取每个元素和元素的下标
for 变量1,变量2 in enumerate(列表):
    循环体(变量1取到的是下标,变量2渠道的是元素)
'''

a.直接获取元素

tvs = ['亮剑', '甄嬛传', '如懿传', '爱情公寓', '知否', '康熙王朝', '三国演义', '流星花园', '武林外传']

for x in tvs:
    print(x)

b.先获取每个元素的下标值,然后再根据下标获取元素

# 0 1 2 3 4 5 6 7 8
for index in range(len(tvs)):
    print(index, tvs[index])
print('------------------------SAN石-------------------------')

# 8 7 6 5 4 3 2 1 0
for index in range(len(tvs)-1, -1, -1):
    print(index, tvs[index])

c.同时获取每个元素和元素的下标

for index, item in enumerate(tvs):
    print(index, item)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个简单的 Python 图书管理系统的增删改查操作示例,使用了字典作为数据存储方式: ```python # 初始化图书列表 books = [{'id': '001', 'title': 'Python 编程基础', 'author': '张三', 'price': 36.5}, {'id': '002', 'title': 'Python 编程进阶', 'author': '李四', 'price': 45.0}, {'id': '003', 'title': 'Python 数据分析', 'author': '王五', 'price': 55.0}, {'id': '004', 'title': 'Python 机器学习', 'author': '赵六', 'price': 68.0}] # 定义函数:查询图书信息 def query_book(): book_id = input('请输入图书编号:') for book in books: if book['id'] == book_id: print('图书编号:', book['id']) print('图书名称:', book['title']) print('图书作者:', book['author']) print('图书价格:', book['price']) return print('未找到该图书!') # 定义函数:添加图书信息 def add_book(): book = {} book['id'] = input('请输入图书编号:') book['title'] = input('请输入图书名称:') book['author'] = input('请输入图书作者:') book['price'] = float(input('请输入图书价格:')) books.append(book) print('添加图书成功!') # 定义函数:修改图书信息 def update_book(): book_id = input('请输入要修改的图书编号:') for book in books: if book['id'] == book_id: book['title'] = input('请输入新的图书名称:') book['author'] = input('请输入新的图书作者:') book['price'] = float(input('请输入新的图书价格:')) print('修改图书成功!') return print('未找到该图书!') # 定义函数:删除图书信息 def delete_book(): book_id = input('请输入要删除的图书编号:') for book in books: if book['id'] == book_id: books.remove(book) print('删除图书成功!') return print('未找到该图书!') # 主函数 while True: print('欢迎使用图书管理系统') print('1. 查询图书信息') print('2. 添加图书信息') print('3. 修改图书信息') print('4. 删除图书信息') print('0. 退出系统') choice = input('请输入操作编号:') if choice == '1': query_book() elif choice == '2': add_book() elif choice == '3': update_book() elif choice == '4': delete_book() elif choice == '0': break else: print('输入有误,请重新输入!') ``` 该图书管理系统使用了一个字典列表 `books` 来存储图书信息,包含图书编号、图书名称、图书作者和图书价格四个字段。其中,查询、添加、修改和删除图书信息分别对应了 `query_book()`、`add_book()`、`update_book()` 和 `delete_book()` 四个函数,根据用户输入的操作编号进行调用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值