元组和集合
创始人
2025-05-29 10:46:33
0

元组和集合

1.元组

1.1 什么是元组(tuple)

  • 元组是容器型数据类型;将()作为容器的标志,里面元素用逗号隔开:(数据1, 数据2, 数据3, …)

  • 元组不可变类型数据(不支持增删改);元组是有序的(顺序影响结果;支持下标操作)

  • 任何类型数据都可以作为元组中的数据

1)空元组

t1 = ()
print(t1)

2)只有一个元素的元组 - 必须在唯一的元素后加逗号

t2 = (100)
print(t2, type(t2))      # int 类型t3 = (100,)
print(t3, type(t3))      # tuple

3)正常元组

t4 = (10, 20, 'abc', 30)
print(t4)       # (10, 20, 'abc', 30)

4)在没有歧义的情况下,元组的()可以省略 - 直接将多个数据用逗号隔开也是一个元组

t5 = 100, 200, 'abc', 30
print(t5)       # (100, 200, 'abc', 30)

使用元组的实际情况:一般不会主动使用元组保存多个数据;但是在遇到时必须会使用

1.2 元组的使用

1)元组是不可变列表 - 列表相关操作和应用中,除了可变相关内容,其他元组都支持

  • 获取元素 - 列表怎么获取元组,元组就怎么获取
t5 = ('狂飙', '黑暗荣耀', '回家的诱惑', '三国演义', '琅琊榜', '甄嬛传')
print(t5[0])    # 狂飙
print(t5[1::2])     # ('黑暗荣耀', '三国演义', '甄嬛传')
print(t5[:3:-1])    # ('甄嬛传', '琅琊榜')
print('------------------------------华丽分割线-----------------------------')
for x in t5:print(x)
print('------------------------------华丽分割线-----------------------------')
for index in range(len(t5)):print(index, t5[index])print('------------------------------华丽分割线-----------------------------')
for index, item in enumerate(t5):print(index, item)
  • 加、乘、比较大小、in 和 not in
t1 = (10, 20, 30)
t2 = (100, 200)
print(t1 + t2)      # (10, 20, 30, 100, 200)print(t1 * 2)       # (10, 20, 30, 10, 20, 30)print(t1 > t2)      # Falseprint(10 in t1)     # True
  • 支持相关函数:sum、min、max、sorted、len、tuple
  • 相关方法:元组.count(元素)、元组.index(元素)

1.3 获取元组和列表元素的另外一种方式

1)让变量的个数和列表或者元组中元素的个数保持一致,来一次获取列表或者元组中的元素

list1 = [100, 200, 300]
x, y, z = list1
print(x, y, z)      # 100 200 300t1 = (10, 20)
m, n = t1
print(m, n)     # 10 20# list(enumerate(list1)) = [(0, 100), (1, 200), (2, 300)]
# x = (0, 100)
# x = (1, 200)
# x = (2, 300)
# index, item = (0, 100)
for x in enumerate(list1):print(x)list2 = [('小明', 18, '男'), ('小红', 19, '女'), ('小蓝', 17, '女')]
for name, age, gender in list2:print(name, age, gender)

2. 集合

2.1 什么是集合(set)

  • 集合是容器型数据类型:将{}作为容器的标志里面多个数据用逗号隔开:{数据1, 数据2, 数据3, …}
  • 2)集合是可变的(支持增删改);集合石无序的
  • 3)集合对元素的要求和字典对键定要求一样:不可变类型的数据、是唯一的(自带去重功能)

1)空集合

s1 = {}
print(s1, type(s1))     # dict
# 空集合
s1 = set()
print(s1, type(s1), len(s1))    # set()  0

2)集合是无序的

print({10, 20, 30} == {20, 10, 30})     # True

3)集合的元素必须是不可变类型数据

s2 = {'abc', 20, 12.3, (10, 20)}
# s3 = {'abc', 20, 12.3, [10, 20]}      # 列表是可变的,会报错

4)集合是唯一的

s2 = {10, 20, 30, 10, 10, 20}
print(s2)       # {10, 20, 30}
  • 去重(若是容器中都是不可变类型数据,去重时可以转换为集合)
# 去重(若是容器中都是不可变类型数据,去重时可以转换为集合)
names = ['小兰', '小明', '张三', '小明', '张三']
print(set(names))       # {'小明', '张三', '小兰'}

2.2 数学集合运算:交集、并集、差集、对称差集、子集和真子集

请添加图片描述

s1 = {1, 2, 3, 4, 5, 6, 7}
s2 = {5, 6, 7, 8, 9, 10}

1)交集 - 求两个集合的公共部分

  • 集合1 & 集合2
print(s1 & s2)      # {5, 6, 7}

2)并集 - 将两个集合合并成一个集合

  • 集合1 | 集合2
print(s1 | s2)      # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

3)差集 - 掉一个集合中包含在另外一个集合的部分,剩下的部分

  • 集合1 - 集合2
  • 集合2 - 集合1
print(s1 - s2)      # {1, 2, 3, 4}
print(s2 - s1)      # {8, 9, 10}

4)对称差集 - 去掉两个集合公共部分后剩下的部分

  • 集合1 ^ 集合2
print(s1 ^ s2)      # {1, 2, 3, 4, 8, 9, 10}

5)子集和真子集

  • 子集:
    • 集合1 >= 集合2 - 判断集合2是否是集合1的子集
    • 集合1 <= 集合2 - 判断集合1是否是集合2的子集
  • 真子集
    • 集合1 > 集合2 - 判断集合2是否是集合1的子集
    • 集合1 < 集合2 - 判断集合1是否是集合2的子集
# {1, 2, 3}的子集:{}、{1}、{2}、{3}、{1, 2}、{1, 3}、{2, 3}、{1,2,3}
# {1, 2, 3}的真子集:{}、{1}、{2}、{3}、{1, 2}、{1, 3}、{2, 3}print({1} < {1, 2, 3})      # True# 注意:这里的比较运算符不是比较大小
print({100, 200, 300, 400} > {1, 2})    # False
ython
# {1, 2, 3}的子集:{}、{1}、{2}、{3}、{1, 2}、{1, 3}、{2, 3}、{1,2,3}
# {1, 2, 3}的真子集:{}、{1}、{2}、{3}、{1, 2}、{1, 3}、{2, 3}print({1} < {1, 2, 3})      # True# 注意:这里的比较运算符不是比较大小
print({100, 200, 300, 400} > {1, 2})    # False

相关内容

热门资讯

强化学习笔记-04 动态规划D... 本文是博主对《Reinforcement Learning- An introduction》的阅读...
pikachu——xss 反射性(get)都提示get了,肯定跟url栏有关拿到题目...
赞美家乡诗歌 赞美家乡诗歌(通用11首)  无论在学习、工作或是生活中,大家都接触过很多优秀的诗歌吧,诗歌语言言简...
缅怀先烈的诗歌 缅怀先烈的诗歌(精选11首)  在日常的学习、工作、生活中,大家都听说过或者使用过一些比较经典的诗歌...
山雨欲来风满楼诗歌 山雨欲来风满楼诗歌  在平时的学习、工作或生活中,大家都看到过许多经典的.诗歌吧,诗歌在形式上,不是...
歌颂春天的英语诗歌 歌颂春天的英语诗歌  春天是一个让人们感觉到很温暖的季节,春天的优美景色也是让人陶醉。接下来小编搜集...
2023金三银四--我们遇到的... 一、面试技巧题(主观题) 序号面试题1怎么能在技术没有那么合格的前提下给面试官留个好印象࿱...
内联函数和模版函数的常见错误、... 内联函数和模版函数的常见错误、以及其为什么可以将其声明和定义在头文件实现并被多个源文件引用1 编译器...
妈妈,我想回家诗歌 妈妈,我想回家诗歌  字/红莲清韵  妈妈,我想回家  昨天,我又在梦中见到了您  您那慈爱的笑容 ...
春江花月夜的情感基调 春江花月夜的情感基调  张若虚的《春江花月夜》是一首七言歌行体诗歌。歌行体诗歌最重要的特点有三个,第...
自由歌诗歌 自由歌诗歌三则  生命诚可贵,爱情价更高。若为自由故,二者皆可抛。  ——题记  一、风筝  飞得再...
感恩父母诗歌 感恩父母诗歌(通用8首)  在平平淡淡的日常中,大家都对那些朗朗上口的诗歌很是熟悉吧,诗歌饱含着作者...
实战打靶集锦-011-bbs-... 提示:本文记录了博主一次失败的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务...
【SSM】MyBatis(三.... 文章目录1.environment2.transactionManager3. dataSource...
循环结构语句 系列文章目录 前端系列文章——传送门 JavaScript系列文章——传送门 文章目录系列文章目录...
赞美雷锋的诗歌赏析 赞美雷锋的诗歌赏析  你,浪花里的一滴水  魏钢焰  在这里,  我要唱一个人。  他不是将军,  ...
今生与你共度的诗歌 今生与你共度的诗歌  今生与你共度  发自由衷的肺腑  新年的钟声  拉开了我们相爱的序幕  不同的...
送给老师的诗歌 送给老师的诗歌(精选6篇)  在现实生活或工作学习中,大家或多或少都接触过一些经典的诗歌吧,诗歌是一...
生命的长度诗歌 生命的长度诗歌  每个人的生命都有长度,  而生命的意义  也许并不于生命存在的长度,  生命也有宽...
CV——day85 注意力机制... Attention Is All You Need1 Introduction2 Backgroun...