Python课程第五天_下午_课程笔记(列表的功能2)

Day_05_AM_ built-in_functions_2

# 数学功能
ages = [1, 3, 4, -6, 5, 88, 2]

print(max(ages))  # Maximum,不是数字一般不用它
print(min(ages))  # Minimum
print(sum(ages))  # 97, 求和

# 排序
# sort(): 升序(从小到大),一般是对数字进行排序,会改变原列表
# sort(reverse=True): 降序(从大到小),会改变原列表
ages = [1, 3, 4, -6, 5, 88, 2]
# ages.sort()
ages.sort(reverse=True)  # [88, 5, 4, 3, 2, 1, -6]
print(ages)  # [-6, 1, 2, 3, 4, 5, 88]

# sorted(): 升序(从小到大),不会改变原列表
# sorted(reverse=True): 降序(从大到小),不会改变原列表

ages = [1, 3, 4, -6, 5, 88, 2]
# ages2 = sorted(ages)
ages2 = sorted(ages, reverse=True)
print(ages, ages2)

# 倒序/逆转/逆序/反转
ages = [1, 3, 4, -6, 5, 88, 2]
# print(ages[::-1])

# reverse(): 倒序,会改变原列表
ages.reverse()  # [2, 88, 5, -6, 4, 3, 1]
print(ages)

# reversed(): 倒序,不会改变原列表
ages = [1, 3, 4, -6, 5, 88, 2]
ages2 = reversed(ages)
print(ages, ages2)

# 拷贝
# 数据类型
# 分两类:
# 基本类型/不可变类型: int, float, bool, str, tuple
# 引用类型/可变类型

# 为什么分两组
# 赋值问题
# 不可变类型的赋值(整数浮点数布尔类型)
a = 100
b = a
# print(a is b)  # True, 地址一样的
b = 99
print(a, b)  # 100 99


# 可变累类型的赋值, 有关联
nums1 = [1, 2, 3]
nums2 = nums1  # 两个列表同样的值
nums1[1] = 99
print(nums1, nums2)
# [1, 99, 3] [1, 99, 3]

# 拷贝/复制
# 浅拷贝/浅复制
nums1 = [1, 2, 3]  # 需要保留原列表拷贝,不需要保留原列表直接操作
nums2 = nums1.copy()
nums1[1] = 99
print(nums1, nums2)
# [1, 99, 3] [1, 2, 3]

# 深拷贝/深复制
nums3 = [1, 2, 3, [4, 5, 6]]  # 二维列表
nums4 = nums3.copy()  # 浅拷贝,改变一个另一个不会变, 只能拷贝第一层
# nums3[1] = 99
# print(nums3, nums4)
# [1, 99, 3, [4, 5, 6]]   [1, 2, 3, [4, 5, 6]] 改nums3,nums4没变

nums3[-1][1] = 100
print(nums3, nums4)
# [1, 2, 3, [4, 100, 6]]   [1, 2, 3, [4, 100, 6]] 现在变得一样了,因为浅拷贝只能拷贝第一层,不能拷贝里面的列表


import copy
nums3 = [1, 2, 3, [4, 5, 6]]
nums4 = copy.deepcopy(nums3)
nums3[-1][1] = 100
print(nums3, nums4)
# [1, 2, 3, [4, 100, 6]]   [1, 2, 3, [4, 5, 6]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值