1. 什么是元组
不可变序列 | 字符串、元组 | 没有增删改 *** 作 |
可变序列 | 列表、字典 | 可增删改 *** 作,对象地址不发生改变 |
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 14:55
""" 可变序列 列表、字典"""
lst = [10, 20, 45] # 列表
print(id(lst))
lst.append(300)
print(lst)
print(id(lst))
"""不可变序列 字符串、元组"""
s = 'hello'
print(id(s))
s = s + 'world'
print(s)
print(id(s)) # 内存地址改变了
(注意:列表使用 [ ] 表示,元组是用()表示)
2. 元组的创建
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 15:04
"""元组的创建方式"""
'''1. 小括号'''
t = ('Python', 'world', 98)
print(t)
print(type(t))
'''2. 内置函数tuple()'''
t2 = tuple(('Python', 'world', 98))
print(t2)
print(type(t2))
'''3. 省略小括号'''
t3 = 'Python', 'world', 98
print(t3)
print(type(t3))
t4 = ('Python',) # 只有一个元素的话,必须加入逗号,否则,会认为是str类型
print(t4)
print(type(t4))
"""空元祖的创建方式"""
lst = [] # 空列表
lst2 = list() # 空列表
d = {} # 空字典
d2 = dict() # 空字典
tt = () # 空元祖
ttt = tuple() # 空元祖
print('空列表', lst, lst2)
print('空字典', d, d2)
print('空元组', tt, ttt)
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 15:21
t = (10, [20, 30], 9)
print(t)
print(type(t))
print(t[0], type(t[0]), id(t[0]))
print(t[1], type(t[1]), id(t[1]))
print(t[2], type(t[2]), id(t[2]))
# t[1] = 100 # 元组不允许修改元素
"""由于[20,30]是列表,所以可以向列表添加元素,而列表的内存地址不变"""
t[1].append(100)
print(t)
print(t[1], type(t[1]), id(t[1]))
3. 元组的遍历
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 15:33
"""元组的遍历"""
t = ('Python', 'world', 98)
print(t[0])
print(t[1])
print(t[2])
# print(t[3]) # 索引超出范围
for item in t:
print(item)
4. 什么是集合
可变类型序列。用 {} 定义。与字典不同的是,集合只有key,没有value。
5. 集合的创建
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 15:45
"""1. 使用{} """
s = {2, 6, 3, 2, 4, 2, 1, 5} # 不允许重复
print(s)
"""2. 使用set() """
s2 = set(range(6))
print(s2, type(s2))
s3 = set([1,2,35,2,5,2,8,2]) # set 将列表转成集合 去重 无序
print(s3, type(s3))
s4 = set((1,2,55,23,52,1,2,5)) # set 将元组转成集合 去重 无序
print(s4,type(s4))
s5 = set('python')
print(s5,type(s5))
s6 = set({2,5,3,5,7,4,5,11,6}) # set 将集合转成集合 去重 有序
print(s6,type(s6))
s7 = {} # 空字典
print(s7,type(s7))
s8 = set()
print(s8,type(s8))
6. 集合的增删改查 *** 作
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 15:58
s = {10,20,30,40,405,60}
"""集合元素的判断 *** 作"""
print(10 in s)
print(100 in s)
print(10 not in s)
print(100 not in s)
"""集合元素的新增 *** 作"""
s.add(80) # 一次添加一个
print(s)
s.update({200,700,800}) # 一次至少添加一个元素
print(s)
s.update([100,500,600]) # 天界列表
s.update((45,63,85,96)) # 添加元组
print(s)
"""集合元素的删除 *** 作"""
s.remove(100)
print(s)
# s.remove(1500) # KeyError: 1500 集合元素不存在
# print(s)
s.discard(1500) # 集合元素不存在,不抛异常
print(s)
s.pop()
print(s)
s.pop()
print(s)
# s.pop(500) # TypeError: set.pop() takes no arguments (1 given)
# print(s)
s.clear() # 清空全部元素
print(s)
7. 集合间的关系
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 16:22
"""两个集合是否相等,(元素相同就相等)"""
s1 = {10, 20, 30, 40}
s2 = {30, 40, 20, 10}
print(s1 == s2)
print(s1 != s2)
"""一个集合是否是另一个集合的子集"""
s1 = {10, 20, 30, 40, 50, 60}
s2 = {10, 20, 30, 40}
s3 = {10, 20, 90}
print(s2.issubset(s1))
print(s3.issubset(s1))
"""一个集合是否是另一个集合的超集"""
print(s1.issuperset(s2))
print(s1.issuperset(s3))
"""两个集合是否有交集"""
print(s2.isdisjoint(s3)) # 是否没有交集 False 就是有交集
s4 = {100,200,400}
print(s2.isdisjoint(s4)) # 是否没有交集 True 就是无交集
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 16:40
"""1. 交集"""
s1 = {10,20,30,40}
s2 = {20,30,40,50,60}
print(s1.intersection(s2))
print(s1 & s2)
print(s1)
print(s2)
"""2. 并集"""
print(s1.union(s2))
print(s1 | s2)
print(s1)
print(s2)
"""3. 差集"""
print(s1.difference(s2))
print(s1-s2)
print(s1)
print(s2)
"""4.对称差集"""
print(s1.symmetric_difference(s2))
print(s1^s2)
print(s1)
print(s2)
8. 集合的生成式
# 作 者:要努力,努力,再努力
# 开发日期:2022/4/21 16:52
lst = [i*i for i in range(10)] # 列表生成式
print(lst)
s = {i*i for i in range(10)} # 集合生成式 无序
print(s)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)