day7-列表进阶

day7-列表进阶

一、列表的增删改

1、增 - 添加元素

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

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

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

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

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

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

2、删

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

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

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

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

(3)列表.pop() - 取出列表最后一个元素

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

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

3、改

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

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

二、列表相关操作

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

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

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

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

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

2、列表的比较

(1)==、!=

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

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

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

print([1, 12, 13, 14] > [2, 4])  # False
print([1, 100, 2, 5, 7] > [1, 2])  # True
print([3, 50, 40, 50, 30] > [3, 50, 40, 50, 6])  # True

3、in 和 not in

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

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

nums1 = [1, 2, 3]
print(10 in nums1)      # False
print(2 in nums1)       # True
print([1, 2] in nums1)  # False

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

a = []
for i in nums:
    if i not in a:
        a.append(i)
print(a)

三、列表相关函数

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

1、求和函数 - sum

# sum(数字序列) - 求数字序列中所有元素的和
scores = [89, 82, 64, 58, 90]
print(sum(scores))    # 383

2、max、min

# max(序列)    - 求序列中最大的元素
# min(序列)    - 求序列中最小的元素
scores = [89, 82, 64, 58, 90]
print(max(scores))    # 90
print(min(scores))    # 58

3、sorted

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

scores = [89, 82, 64, 58, 90]
new_scores = sorted(scores)
print(new_scores)     # [58, 64, 82, 89, 90]

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

scores = [89, 82, 64, 58, 90]
new_scores = sorted(scores, reverse=True)
print(new_scores)     # [90, 89, 82, 64, 58]

4、len(序列)

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

scores = [89, 82, 64, 58, 90]
print(len(scores))    # 5

5、list(数据)

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

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

四、列表相关方法

1、列表.clear(元素)

# 将列表中所有元素都有删除
nums = [89, 82, 64, 58, 90]
nums.clear()
print(nums)    # []

2、列表.copy()

# 复制原列表产生一个一模一样的新列表
nums = [89, 82, 64, 58, 90]
result = nums.copy()
print(result)  # [89, 82, 64, 58, 90]


#
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, 82, 64, 58, 90, 78, 60]
print(nums.count(60))  # 1
print(nums.count(70))  # 0
print(nums.count(89))  # 1

4、列表.extend(序列)

# 将序列中的所有的元素都添加到列表中
list = [10, 30, 20]
list.extend([22, 33, 44])
print(list)  # [10, 30, 20, 22, 33, 44]

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

# 注意和append的区别
list = [10, 30, 20]
list.append('abc')
print(list)    # [10, 30, 20, 'abc']

5、列表.index(元素)

# 获取指定元素在列表中的下标(返回的是从0开始的下标值)
nums = [89, 82, 64, 58, 90, 78, 60]
print(nums.index(89))    # 0
print(nums.index(60))    # 6
print(nums.index(90))    # 4
# print(nums.index(1))     # 报错

6、列表.reverse()

# 将列表逆序
nums = [8,9,10]
nums.reverse()
print(nums)    # [10, 9, 8]

7、sort

  • 列表.sort() - 将列表中的元素从小到大排序(直接修改原列表元素的顺序)
  • 列表.sort(reverse=True) - 将列表中的元素从大到小排序(直接修改原列表元素的顺序)
nums = [89, 82, 64, 58, 90, 78, 60]
nums.sort()
print(nums)         # [58, 60, 64, 78, 82, 89, 90]

nums = [89, 82, 64, 58, 90, 78, 60]
new_nums = sorted(nums)
print(new_nums)     # [58, 60, 64, 78, 82, 89, 90]

五、列表推导式

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

1、结构1

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

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

# 练习:利用列表推导式提取nums中所有元素的个位数
nums = [12, 345, 78, 90]
nums = [i % 10 for i in nums]
print(nums)   # [2, 5, 8, 0]

2、结构2

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

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

# 练习:利用列表推导式提取list1中所有的字符串
list1 = [10, 23.9, 'abc', True, '100', '你好']        
result = [i for i in list1  if type(i)== str]
print(result)  # ['abc', '100', '你好']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值