0
点赞
收藏
分享

微信扫一扫

Chap 08 是排还是散

钎探穗 2022-04-15 阅读 37
python

066_什么是元组

"""
课程视频:66_什么是元组
学习时间:2022/4/13 13:48
"""
# 可变序列:列表、字典、集合
lst = [10, 20, 45]
print(lst, id(lst))
lst.append(300)
print(lst, id(lst))
# 不可变序列:字符串、元组
s = 'hello'
print(s, id(s))
s = s + 'world'
print(s, id(s))


067_元组的创建方式

"""
课程视频:67_元组的创建方式
学习时间:2022/4/13 13:54
"""
# 直接小括号
t = ('Python', 'world', 98)
print(t, type(t))
t1 = '可以', '不用', '小括号'
print(t1, type(t1))
# 内置函数tuple()
t2 = tuple(('python', 'world', 98))
print(t2, type(t2))
# 只包含一个元组的元素需要使用逗号和小括号
t3 = ('python',)
print(t3, type(t3))

# 空列表的创建
lst = []
lst1 = list()
# 空字典的创建
d = {}
d1 = dict()
# 空元组的创建
t4 = ()
t5 = tuple()

print('空列表', lst, lst1)
print('空字典', d, d1)
print('空元组', t4, t5)


068_为什么将元组设计成不可变序列

"""
课程视频:68_为什么将元组设计成不可变序列
学习时间:2022/4/13 14:12
"""
'''
设计为不可变序列
 -多任务环境下,同时操作对象时不需要加锁
 -程序中尽量使用不可变序列
如果元组中对象不可变,则不能再引用其他对象
如果元组中对象可变,则可变对象的引用不允许改变,但数据可以改变
'''
t = (10, [20, 30], 40)
print(t, type(t), id(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  TypeError: 'tuple' object does not support item assignment
t[1].append(100)
print(t, type(t), id(t))
lst = [222, 333, 444]
t[1].extend(lst)
print(t, type(t), id(t))
t[1].insert(2, 999)
print(t, type(t), id(t))
t[1].remove(444)
print(t, type(t), id(t))
t[1].pop(2)
print(t, type(t), id(t))


069_元组的遍历

"""
课程视频:69_元组的遍历
学习时间:2022/4/13 15:04
"""
t = ('Python', 'world', 98)
# 使用索引获取元组元素
print(t[0])
print(t[1])
print(t[2])
# 遍历元组:for  in
for item in t:
    print(item)


070_集合的概述和创建

"""
课程视频:70_集合的概述和创建
学习时间:2022/4/13 15:10
"""
# 字典:{key1:value1,key2:value2……}
# 集合:{key1,key2……},没有value的字典

# 使用{}创建
s = {2, 3, 4, 5, 5, 6, 7, 7}  # 集合中的元素不允许重复,自动去重
print(s, type(s))

# 使用set()创建
s1 = set(range(6))
print(s1, type(s1))

s2 = set([5, 4, 3, 3, 2, 1])  # 将列表转为集合类型,同时去重
print(s2, type(s2))

s3 = set((1, 2, 3, 3, 4, 64, 70))  # 将元组转为集合
print(s3, type(s3))

s4 = set('python')  # 将字符串序列转为集合中的元素
print(s4, type(s4))  # 集合中的元素是无序的

s5 = set({1, 2, 3, 4, 4, 65})  # 将集合转为集合
print(s5, type(s5))

s6 = {}  # 直接使用{}是dict类型,空字典
s7 = set()  # 空集合的创建
print(s6, type(s6))
print(type(s7))


071_集合的相关操作

"""
课程视频:71_集合的相关操作
学习时间:2022/4/13 15:41
"""
# 集合是一个可变序列
s = {10, 20, 30, 405, 60}
# 集合元素的判断
print(10 in s)
print(100 in s)
print(10 not in s)
print(100 not in s)
# 集合元素的新增,
s.add(80)  # add()添加1个
print(s)
s.update({200, 300, 400})  # update()至少添加1个,可添加集合
print(s)
s.update([1, 2, 3])  # update()至少添加1个,可添加列表
print(s)
s.update((6, 5, 4))  # update()至少添加1个,可添加元组
print(s)
# 集合元素的删除
s.remove(405)  # remove()删除1个,不存在则KeyError
print(s)
s.discard(999)  # discard()删除1个,不存在不报错
print(s)
s.pop()
# s.pop(400)  # pop()不可用参数,TypeError: set.pop() takes no arguments (1 given)
print(s)
s.clear()  # 清空集合
print(s)


072_集合间的关系

"""
课程视频:72_集合间的关系
学习时间:2022/4/13 16:02
"""
# 两个集合是否相等,==或!=
s1 = {10, 20, 30, 40}
s2 = {40, 30, 20, 10}
print(s1 == s2)  # True
print(s1 != s2)  # False

# 一个是否是另一个的子集,issubset子集。(包含于)
s1 = {1, 2, 3, 4, 5, 6}
s2 = {1, 2, 3, 4}
s3 = {1, 2, 9}
print(s2.issubset(s1))  # True
print(s3.issubset(s1))  # False

# 一个是否是另一个的超集,issuperset超集。(包含)
print(s1.issuperset(s2))  # True
print(s1.issuperset(s3))  # False

# 两个集合是否没有交集,isdisjoint不相交的
print(s2.isdisjoint(s3))  # False 有交集
s4 = {200, 300, 400}
print(s2.isdisjoint(s4))  # True 没有交集

 
073_集合的数学操作

"""
课程视频:73_集合的数学操作
学习时间:2022/4/13 16:22
"""
# 交集:intersection() 或 &
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1.intersection(s2))
print(s1 & s2)
print()
# 并集:union() 或 |
print(s1.union(s2))
print(s1 | s2)
print()
# 差集:difference() 或 -
print(s1)
print(s2)
print(s1.difference(s2))
print(s2.difference(s1))
print(s1 - s2)
print(s2 - s1)
print()
# 对称差集:symmetric_difference 或 ^
print(s1)
print(s2)
print(s1.symmetric_difference(s2))
print(s2 ^ s1)

 


074_集合生成式

"""
课程视频:74_集合生成式
学习时间:2022/4/13 16:40
"""
# 列表生成式语法格式[ i*i for i in range()],通常包含自定义变量
lst = [i*i for i in range(10)]  # 列表中的元素是有序的
print(lst)
# 集合生成式语法格式{ i*i for i in range()},通常包含自定义变量
s = {i*i for i in range(10)}  # 集合中的元素是无序的
print(s)
# 元组是不可变序列,没有生成式


知识点总结



列表字典元组集合对比总结

 

 

举报

相关推荐

0 条评论