Python第一阶段学习总结

【第6天】Python第一阶段学习总结

2021/09/22

一. 列表相关操作

1. 数学运算符: +、*

  1. 列表1 + 列表2:将两个列表中的元素合并产生一个新的列表。

例如:[x, y, z] + [m, n] -> [x, y, z, m, n]

  1. 列表 * N / N * 列表:列表中的元素重复N次产生一个新的列表**(N=正整数)**。

    注意:如果N为0或者负数,结果为[ ]。N不能等于浮点数。

    nums1 = [1, 2, 3]
    nums2 = [2, 1]
    print(nums1 + nums2)    #[1, 2, 3, 2, 1]
    print(nums1 * 2)      #[1, 2, 3, 1, 2, 3]
    

2. 比较运算符:==、!=、>、<、>=、<=

  1. ==、!=

  2. <、>、 >=、 <= - 比较的是第一对不相等的元素的大小。(从前往后相同位置上的元素为一对)

    例如:列表1 > 列表2
    print([1, 2, 3] == [3, 2, 1])       # False
    print([1, 2, 3] == [1, 2, 3])       # True
    
    print([1, 100, 200, 300] > [10, 20])   # False
    print([1, 100, 1000] > [1, 200, 0])    # False
    

3. in 和 not in(结果为布尔值)

  1. 元素 in 列表 - 判断列表中是否存在指定元素
  2. 元素 not in 列表 - 判断列表中是否不存在指定元素
# 练习1:有两个列表A和B, 使用列表C来获取两个列表中公共的元素
A = [1, 'a', 4, 90, 1, 1, 1, 1]
B = ['a', 8, 'j', 1]
C = []
for x in A:
    if x in B and x not in C:
        C.append(x)
print(C)
#  练习2
names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三', '王二', '王二', '李四']
new_names = []
for x in names:
    if x not in new_names:
        new_names.append(x)
print(new_names)
# 练习3:提取分数列表中90分以上的成绩
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
new_scores = []
for x in scores:
    if x > 90:
        new_scores.append(x)
print(new_scores)
# 练习4:删除分数列表中不及格的分数
scores = [90, 89, 23, 67, 99, 96, 56, 78, 91, 45]
new_scores = []
for x in scores:
    if x >= 60:
        new_scores.append(x)
print(new_scores)

二. 列表相关函数

1. max和min:

  1. max(序列) - 获取序列中元素的最大值

  2. min(序列) - 获取序列中元素的最小值

    ❗️❗️❗️ 注意:序列中的元素之间必须支持比较大小的操作

    nums = [78, 23, -9, 34, 89, 54]
    print(max(nums))
    print(min(nums))
    

2. 最小值、最大值的套路

# 最大值
nums = [78, 23, -9, 34, 89, 54]
max1 = nums[0]
for x in nums[1:]:
    if x > max1:
        max1 = x
print(max1)
# 最小值
nums = [78, 23, -9, 34, 89, 54]
min1 = nums[0]
for x in nums[1:]:
    if x < min1:
        min1 = x
print(min1)

3. sum - 求数字和

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

nums = [78, 23, -9, 34, 89, 54]
print(sum(nums))

4. sorted - 将序列中的元素从小到大(升序)排序,产生一个新的列表

  1. sorted(序列):将序列中的元素从小到大(升序)排序,产生一个新的列表

  2. sorted(序列,reverse=True):将序列中的元素从大到小(降序)排序,产生一个新的列表

    nums = [78, 23, -9, 34, 89, 54]
    new_nums = sorted(nums)
    print(new_nums)
    
    nums = [78, 23, -9, 34, 89, 54]
    new_nums = sorted(nums, reverse=True)
    print(new_nums)
    

5. len - 统计元素个数:

len(序列) - 统计序列中元素的个数

nums = [78, 23, -9, 34, 89, 54]
print(len(nums))        # 6
print(len('abc'))       # 3

6. list

list(数据) - 将指定数据转换成列表(所有的序列可转换成列表;是将序列中的元素作为列表的元素)

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

7. enumerate

例如:[10, 20, 30] -> [(0, 10), (1, 20), (2, 30)]

for 变量1,变量2 in enumerate(列表):
 变量1是每个元素的下标
 变量2是每个元素
nums = [78, 23, -9, 34, 89, 54]
for index, item in enumerate(nums):
 print(index, item)

三. 列表相关方法:列表.xxx()

1. list.clear() - 清空列表

nums = [20, 99, 78, 'abc']
nums.clear()
print(nums)

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

​ 如果直接用一个变量向另外一个变量赋值,赋的是地址。赋值后两个变量指向的是同一个数据。

​ 注意:列表[:]、列表*1、列表+[]的功能和列表.copy()的效果一样。
请添加图片描述请添加图片描述

list1 = [10, 'abc', 100]
list2 = list1.copy()
print(list1, list2)
print(id(list1), id(list2))

list3 = list1
print(list1, list3)
print(id(list1), id(list3))

3. 列表.count(元素)

nums = [10, 23, 0, 12, 10, 34, 23, 23, 50]
print(nums.count(23))

4. 列表.extend(序列) - 将序列中的元素全部添加到列表中(批量添加)

nums = [100, 200]
scores = [90, 89, 78, 87]
nums.extend(scores)
print(nums)   # [100, 200, 90, 89, 78, 87]

5. 列表.index(元素) - 获取元素的下标值(0开始的下标)

names = ['张三', '小明', '李四', '李四']
print(names.index('李四'))

6. 列表.reverse()- 将列表中的元素逆序

names = ['张三', '小明', '李四', '李四']
names.reverse()
print(names)

7.列表.sort() 和列表.sort(reverse=True)

  1. 列表.sort()将列表中的元素从小到大排序(直接修改原列表中元素的顺序,不会产生新的列表)

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

nums = [10, 23, 0, 12, 10, 34, 23, 23, 50]
nums.sort()
print(nums)

nums.sort(reverse=True)
print(nums)

四. 列表推导式

1. 列表推导式 - 创建列表的快捷方式

语法1:(将序列中的元素按照统一的规则整体变换)
[表达式 for 变量 in 序列]

相当于:
list1= []
for 变量 in 序列:
    list1.append(表达式)

list1 = [10 for x in range(3)]
print(list1)     # [10, 10, 10]

list2 = [x for x in range(3)]
print(list2)     # [0, 1, 2]

list3 = [x*10 for x in range(3)]
print(list3)      # [0, 10, 20]

# 练习:将nums中所有的元素乘以10,产生一个新的列表
nums = [12, 33, 7, 9]
list4 = [x * 10 for x in nums]
print(list4)
语法2:(对序列中的元素进行筛选/删除)
[表达式 for 变量 in 序列 if 条件语句]

相当于:
list1 = []
for 变量 in 序列:
    if 条件语句:
        list1.append(表达式)

nums = [12, 33, 7, 9]
list5 = [x for x in nums if x % 2]
print(list5)    # [33, 7, 9]

# 练习: 利用列表推导式删除scores中小于60的分数
scores = [89, 34, 56, 90, 56, 78, 99]
list6 = [x for x in scores if x >= 60]
print(list6)     # [89, 90, 78, 99]
语法3:()
[三目运算符 for 变量 in 序列]

补充:三目运算符
c的三目运算符 - ?:
表达式?值1:2

Python的三目运算符 - if else1 if 表达式 else2   -  如果表达式的值为True,整个运算结果是值1,否则是值2

age = 1
result = '成年' if age >= 18 else'未成年'
print(result)

# 练习:利用列表推导式将nums中所有的偶数除以2,所有的奇数乘以2
nums = [20, 34, 33, 6, 15, 7, 20]
new_nums = [x * 2 if x % 2 else x // 2 for x in nums]
print(new_nums)
# [10, 17, 66, 3, 30, 14, 10]

# 练习:偶数除以2, 奇数不变
# [10, 17, 33, 3, 15, 7, 10]
nums = [20, 34, 33, 6, 15, 7, 20]
new_nums = [x if x % 2 else x // 2 for x in nums]
print(new_nums)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值