day-7列表进阶笔记

day-7列表进阶

一.列表的增删改

1.增——添加元素

1)列表.append(元素)——在列表最后添加指定元素
2)列表.insert(下标, 元素) —— 在指定下标对应前插入指定元素

game = [1, 2, 3]
print(game)
game.append(111)
print(game)
game.insert(2, "联盟")
print(game)
# 练习:提取nums中所有的偶数
nums = [43, 60, 88, 56, 91, 33, 40, 21]
# [60,88,56,40]
new_nums =[]
for x in nums:
    if x % 2 == 0:
        new_nums.append(x)
        print(new_nums)

2.删

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

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

gamess = ['联盟', 5, 6, 8, 1, '吃鸡']
del gamess[0]
print(gamess)
gamess.remove('吃鸡')
print(gamess)

3)pop有删除功能.但性质是取出来

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

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

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

3.改——只有一种方式

列表[下标] = 新元素

youxi = ['英雄联盟', '王者荣耀', '吃鸡', '部落冲突', '开心消消乐']
youxi[1] = '永劫无间'
print(youxi)

二.列表相关操作

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

nums1 = [10, 20, 30]
nums2 = [20, 666, 10]
result = nums1 + nums2
print(result)

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

print(nums1 * 3)
print(nums1 * 2)

2.列表的比较运算

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

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

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

print([1, 100, 500] > [2, 3])   # False--原因是1比2小
print([1, 100, 500] > [1, 3])   # True--100 > 3
print([500, 200] < [500, 300])  # True

3.in 和not in

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

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

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

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

三.列表相关函数

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

1.求和函数 - sum

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

2.max,min

# max(序列)  min(序列)
print(max(scores))
print(min(scores))

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

scores2 = [89, 90, 66, 70]
new_scores2 = sorted(scores2)
print(new_scores2)

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

scores1 = [89, 90, 66, 70]
new_scores1 = sorted(scores1, reverse=True)
print(new_scores1)

4.len(序列)——获取序列的长度(序列中元素的个数)

5.list(数据)-将指定的数据转换成列表(只有序列才能转换成列表)换的时候直接将序列的元素变为列表的元素

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

四.列表相关方法

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

1.列表.clear()——清空列表

nums = [1, 999, 20, 30]
nums.clear()
print(nums)

2.列表.copy() - 复制原列表,产生一个一模一样的新的列表

nums1 = [1, 999, 20, 30]
new_num = nums1.copy()
print(new_num)

a = [1, 2, 9, 88]
# 用一个变量直接给另一个变量赋值,赋的其实是地址.a变b也变
b = a
# 赋值原数据产生一个一模一样的新的数据,然后把新的数据地址给新的变量——防止a变了c也变
c = a.copy()
print(b)
print(a)

a.append("dog")
print(a)
print(b)
print(c)

3.列表.count(元素)——统计列表中指定元素个数

print(a.count(1))
print(b.count(22))

4.列表.extend(序列)——将序列中所有的元素都添加到列表中

list = [10, 20 ,300]
list.extend([1000, 666])
print(list)

list.extend('abcd')
print(list)

list.append('abcd')
print(list)

5.列表.index(元素)-获取指定元素在列表中的下标

nums1 = [1, 999, 20, 30]
print(nums1.index(30))  #3
print(nums1.index(1))   #0

6.列表.reverse()——列表逆序

nums = [1, 2,8,6,4]
nums.reverse()
print(nums)

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

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

ms = [1, 2,8,6,4]
ms.sort()
print(ms)
ms1 = [1, 2,8,6,4]
ms1.sort(reverse=True)
print(ms1)

五.列表推导式

[表达式 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]
list3 = [i*10 for i in nums]
print(list3)
# 练习1:利用列表推导将nums中提取所有元素个位数
nums = [12, 345, 78, 90]
list4 = [y%10 for y in nums]
print(list4)

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]
result1 = [x for x in nums if x % 2 != 0]
print(result1)
# 练习2:利用列表推导式提取list1中所有的字符串
list1 = [10, 23.9, 'abc', True, '100', '你好']        # ['abc', '100', '你好']
result2 = [x for x in list1 if type(x) == str]
print(result2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值