day7-列表总结

本文详细介绍了Python编程中列表的增删改操作,包括append、insert、remove、pop等方法,以及列表的加法、乘法、比较运算。同时,讲解了列表的查找、统计、排序等功能,如count、index、sort等。此外,还探讨了列表推导式的使用以及实战应用,帮助读者深入理解并熟练运用Python列表。
摘要由CSDN通过智能技术生成

列表的增删改

1. 增 - 添加元素

1)列表.append(元素) - 在列表的最后添加指定元素

2)列表.insert(下标, 元素) - 在指定下标对应的元素前插入指定元素

games = ['英雄联盟', '王者荣耀', '吃鸡']
print(games)        # ['英雄联盟', '王者荣耀', '吃鸡']

games.append('部落冲突')
print(games)        # ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突']

games = ['英雄联盟', '王者荣耀', '吃鸡']
games.insert(1, '部落冲突')
print(games)        # ['英雄联盟', '部落冲突', '王者荣耀', '吃鸡']

练习:提取nums中所有的偶数

nums = [43, 60, 88, 91, 33, 56, 70, 21]
new_nums = []
for x in nums:
    if x % 2 == 0:
        new_nums.append(x)
print(new_nums)     # [60, 88, 56, 70]

2.删

1)del 列表[下标] - 删除列表中指定下标对应的元素

games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
print(games)        # ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']

del games[2]
print(games)        # ['英雄联盟', '王者荣耀', '部落冲突', '开心消消乐']

2)列表.remove(元素) - 删除列表中第一个指定的元素

games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
games.remove('吃鸡')
print(games)        # ['英雄联盟', '王者荣耀', '部落冲突', '开心消消乐']

games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐', '吃鸡']
games.remove('吃鸡')
print(games)        # ['英雄联盟', '王者荣耀', '部落冲突', '开心消消乐', '吃鸡']

列表.pop() - 取出列表最后一个元素,并返回

列表.pop(下标) - 取出列表中指定下标对应的元素,并返回



games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
result = games.pop()
print(games, result)        # ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突']  开心消消乐

3.改

列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素

games = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
games[1] = '红色警戒'
print(games)        # ['英雄联盟', '红色警戒', '吃鸡', '部落冲突', '开心消消乐']

列表的相关操作

1.列表的加法和乘法运算

1)加法运算: 列表1 + 列表2 - 将两个列表合并创建一个新的列表

nums1 = [10, 20, 30]
nums2 = [11, 22]
result = nums1 + nums2
print(result)       # [10, 20, 30, 11, 22]

2)乘法运算:列表 * N 、 N * 列表 - 重复列表中的元素N次产生一个新的列表

print(nums2 * 3)        # [11, 22, 11, 22, 11, 22]
print(nums1 * 2)        # [10, 20, 30, 10, 20, 30]

2.列表的比较运算

1)比较是否相等(==、!=)

print(nums1 == [10, 20, 30])     # True
print(nums1 == [10, 30, 20])     # False
print([10, 20] == 'abc')         # False

2)比较大小(>、<、>=、<=)

两个列表比较大小比较的是第一对不相等的元素的大小(相同位置上的元素叫一对)

print([1, 100, 200, 300, 40] > [2, 3])                  # False
print([2, 100, 200, 300, 40] > [2, 3])                  # True
print([10, 20, 3, 10000] > [10, 20, 3.5, -1999])        # False

3.in 和 not in

元素 in 列表 - 判断指定列表中是否存在指定元素

元素 not in 列表 - 判断指定列表中是否不存在指定元素

nums1 = [10, 20, 30]
print(10 in nums1)      # True
print(1 in nums1)       # False
print([10, 20] in nums1)        # False

练习:将nums中重复的元素去掉

nums = [10, 20, 10, 30, 20, 10, 40]
new_nums = []
for x in nums:
    if x not in new_nums:
        new_nums.append(x)
print(new_nums)

列表相关函数

系统提供的和序列相关的常用函数:sum、max、min、sorted、len、list

1.求和函数 - sum

sum(数字序列) - 求数字序列中所有元素的和

scores = [89, 90, 66, 70, 56]
print(sum(scores))      # 371

2.max、min

max(序列) - 求序列中最大的元素

min(序列) - 求序列中最小的元素

print(max(scores))
print(min(scores))

3.sorted(序列)

将序列中的元素从小到大排序,产生一个新的列表(不会修改原序列元素的顺序)

scores = [89, 90, 66, 70, 56]
new_scores = sorted(scores)
print(new_scores)       # [56, 66, 70, 89, 90]

sorted(序列, reverse=True) - 将序列中的元素从大到小排序,产生一个新的列表(不会修改原序列元素的顺序)

scores = [89, 90, 66, 70, 56]
new_scores = sorted(scores, reverse=True)
print(new_scores)       # [90, 89, 70, 66, 56]

4.len(序列)

获取序列的长度(序列中元素的个数)

print(len(scores))

5.list(数据)

将指定的数据转换成列表(只有序列才能转换成列表),转换的时候直接将序列中的元素变成列表的元素

print(list('abc'))      # ['a', 'b', 'c']
print(list(range(3)))       # [0, 1, 2]

列表相关方法

列表相关方法的使用:列表.xxx()

1.列表.clear()

清空列表

nums = [89, 78, 90, 22, 34, 55]
nums.clear()
print(nums)     # []

2.列表.copy()

复制原列表产生一个一模一样的新列表

nums = [89, 78, 90, 22, 34, 55]
result = nums.copy()
print(result)       # [89, 78, 90, 22, 34, 55]
A = [10, 20, 30, 40]

用一个变量直接给另外一个变量赋值,赋的其实是内存地址

B = A

赋值原数据产生一个一模一样的新的数据,然后将新的数据的地址赋给新的变量

C = A.copy()
print(A)        # [10, 20, 30, 40]
print(B)        # [10, 20, 30, 40]
print(C)        # [10, 20, 30, 40]

A.append(100)
print(A)        # [10, 20, 30, 40, 100]
print(B)        # [10, 20, 30, 40, 100]
print(C)        # [10, 20, 30, 40]

3.列表.count(元素)

统计列表中指定元素的个数

nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
print(nums.count(60))
print(nums.count(100))
print(nums.count(78))

4.列表.extend(序列)

将序列中的所有的元素都添加到列表中

list1 = [10, 20, 30]
list1.extend([100, 200, 300])
print(list1)        # [10, 20, 30, 100, 200, 300]

list1 = [10, 20, 30]
list1.extend('abc')
print(list1)        # [10, 20, 30, 'a', 'b', 'c']

list1 = [10, 20, 30]
list1.append('abc')
print(list1)    # [10, 20, 30, 'abc']

5.列表.index(元素)

获取指定元素在列表中的下标(返回的是从0开始的下标值)

nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
print(nums.index(90))       # 2
print(nums.index(89))       # 0
print(nums.index(78))       # 1

print(nums.index(100))    #  报错!ValueError: 100 is not in list

6.列表.reverse()

将列表逆序

nums = [78, 90, 60]
nums.reverse()
print(nums)     # [60, 90, 78]

7.列表.sort()

将列表中的元素从小到大排序(直接修改原列表元素的顺序)

列表.sort(reverse=True) - 将列表中的元素从大到小排序(直接修改原列表元素的顺序)

nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
nums.sort()
print(nums)         # [22, 34, 55, 60, 78, 78, 78, 89, 90]

nums = [89, 78, 90, 22, 34, 55, 78, 60, 78]
new_nums = sorted(nums)
print(new_nums)

列表推导式

列表推导式:一种快速创建列表的表达式

1.结构1:

"""
[表达式 for 变量 in 序列]   

原理:让变量去序列中取值,一个一个的取,取完为止,每取一个值就计算一次表达式的结果,并且将计算结果作为列表的一个元素
"""
list1 = [10 for x in range(10)]
print(list1)        # [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]

list2 = [x*2 for x in range(10)]
print(list2)        # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

练习1:利用列表推导式将nums中所有的元素都乘以10

nums = [12, 3, 56, 8]           # [120, 30, 560, 80]
result = [x*10 for x in nums]
print(result)

练习2:利用列表推导式提取nums中所有元素的个位数

nums = [12, 345, 78, 90]        # [2, 5, 8, 0]
result = [x % 10 for x in nums]
print(result)

2.结构2

"""
[表达式 for 变量 in 序列 if 条件语句]   

原理:让变量去序列中取值,一个一个的取,取完为止;每取一个值就判断一次条件是否成立,
     如果成立就计算一次表达式的结果,并且将结果作为列表的元素
"""
result = [x for x in range(10) if x % 2 == 0]
print(result)     # [0, 2, 4, 6, 8]

练习1:利用列表推导式删除nums中所有的偶数

nums = [10, 9, 99, 8, 70, 65, 43, 20]       # [9, 99, 65, 43]
result = [x for x in nums if x % 2 != 0]
print(result)

练习2:利用列表推导式提取list1中所有的字符串

list1 = [10, 23.9, 'abc', True, '100', '你好']        # ['abc', '100', '你好']
result = [x for x in list1 if type(x) == str]
print(result)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王薇蕴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值