天池Python练习09-集合

笔记:Python 字典和集合(练习题) 欢迎来到 Python 字典和集合练习题集!本系列练习旨在帮助您巩固和加深对 Python 字典和集合的理解。字典和集合是 Python 中极为重要且灵活的数据结构,它们在各种场景下都有着广泛的应用,从数据管理到算法实现都离不开它们的支持。通过完成这些练习,您将有机会探索 Python 字典和集合的各种用法,包括创建、访问、更新和删除元素,以及利用它们进行数据处理和算法设计的技巧。 阅读详情

目录

1 集合

1.1 集合的创建

1.2 访问集合中的值

1.3 集合的内置方法

1.4 集合的转换

1.5不可变集合


1 集合


        python中set跟dict类似,也是一组key集合,但是不存储value。
        由于key不能重复,所以在set中没有重复的key。
注意:key为不可变类型,既可哈希的值

num = {}
print(type(num))

num = {1,2,3,4}
print(type(num))

1.1 集合的创建


        1.先创建对象再加入元素
        2.在创建空集合时只能使用 s=set(),因为s={}是创建空字典的

basket = set()
basket.add('apple')
basket.add('banana')
print(basket)

        1.直接把一堆元素用花括号括起来{元素1,元素2,元素n}
        2.重复元素在set中会被自动过滤

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) # {'banana', 'apple', 'pear', 'orange'}

#使用set(value)工厂函数,把列表转换成集合

a = set('abracadabra')
print(a) 
# {'r', 'b', 'd', 'c', 'a'}
b = set(("Google", "Lsgogroup", "Taobao", "Taobao"))
print(b) 
# {'Taobao', 'Lsgogroup', 'Google'}
c = set(["Google", "Lsgogroup", "Taobao", "Google"])
print(c) 
# {'Taobao', 'Lsgogroup', 'Google'}

#去掉列表中重复的元素
lst = [0, 1, 2, 3, 4, 5, 5, 3, 1]
temp = []
for item in lst:
    if item not in temp:
        temp.append(item)
print(temp) # [0, 1, 2, 3, 4, 5]

a = set(lst)
print(list(a)) # [0, 1, 2, 3, 4, 5]

        从结果发现集合的两个提点:无序和唯一
        由于set存储的是无序集合,所以我们不可以为集合创建索引或者执行切片,也没有键可以用来获取元素的值,但是可以判断一个元素是否在集合中

1.2 访问集合中的值

        可以使用len()内建函数获得集合的大小

thisset = set(['google','baidu','taobao'])
print(thisset)

        使用for把集合中的元素一个一个读取

thisset = set(['google','baidu','taobao'])
for item in thisset:
    print(item)

        通过in或者not in 判断一个元素是否在集合中出现

thisset = set(['Google', 'Baidu', 'Taobao'])
print('Taobao' in thisset) # True
print('Facebook' not in thisset) # True

1.3 集合的内置方法

        set.add(elmnt)用于给集合添加元素,如果添加的元素在集合中已经存在,则不执行操作。

fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
print(fruits) 
# {'orange', 'cherry', 'banana', 'apple'}
fruits.add("apple")
print(fruits) 
# {'orange', 'cherry', 'banana', 'apple'}

        set.updata(set)用于修改当前集合,可以天剑新元素或集合到当前集合。

x = {"apple", "banana", "cherry"}
y = {"google", "baidu", "apple"}
x.update(y)
print(x)
# {'cherry', 'banana', 'apple', 'google', 'baidu'}
y.update(["lsgo", "dreamtech"])
print(y)
# {'lsgo', 'baidu', 'dreamtech', 'apple', 'google'}

        set.remove(item) 用于移除集合中的指定元素,如果元素不在则会发生错误。

fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
print(fruits) # {'apple', 'cherry'}

        set.discard(value) 用于移除指定的集合元素。 remove() 方法在移除一个不存在的元素时会发生错误,而discard() 方法不会。

fruits = {"apple", "banana", "cherry"}
fruits.discard("banana")
print(fruits) # {'apple', 'cherry'}

        set.pop() 用于随机移除一个元素。

fruits = {"apple", "banana", "cherry"}
x = fruits.pop()
print(fruits) # {'cherry', 'apple'}
print(x) # banana

        由于 set 是无序和无重复元素的集合,所以两个或多个 set 可以做数学意义上的集合操作。
        1. set.intersection(set1, set2 ...) 返回两个集合的交集。
        2. set1 & set2 返回两个集合的交集。
        3. set.intersection_update(set1, set2 ...) 交集,在原始的集合上移除不重叠的元素。

a = set('abracadabra')
b = set('alacazam')
print(a) # {'r', 'a', 'c', 'b', 'd'}
print(b) # {'c', 'a', 'l', 'm', 'z'}
c = a.intersection(b)
print(c) # {'a', 'c'}
print(a & b) # {'c', 'a'}
print(a) # {'a', 'r', 'c', 'b', 'd'}
a.intersection_update(b)
print(a) # {'a', 'c'}

        1.set.union(set1, set2...) 返回两个集合的并集。
        2. set1 | set2 返回两个集合的并集。

a = set('abracadabra')
b = set('alacazam')
print(a) # {'r', 'a', 'c', 'b', 'd'}
print(b) # {'c', 'a', 'l', 'm', 'z'}
print(a | b) # {'l', 'd', 'm', 'b', 'a', 'r', 'z', 'c'}
c = a.union(b)
print(c) # {'c', 'a', 'd', 'm', 'r', 'b', 'z', 'l'}

        1. set.difference(set) 返回集合的差集。
        2. set1 - set2 返回集合的差集。
        3. set.difference_update(set) 集合的差集,直接在原来的集合中移除元素,没有返回值。

a = set('abracadabra')
b = set('alacazam')
print(a) # {'r', 'a', 'c', 'b', 'd'}
print(b) # {'c', 'a', 'l', 'm', 'z'}
c = a.difference(b)
print(c) # {'b', 'd', 'r'}
print(a - b) # {'d', 'b', 'r'}
print(a) # {'r', 'd', 'c', 'a', 'b'}
a.difference_update(b)
print(a) # {'d', 'r', 'b'}

        1. set.symmetric_difference(set) 返回集合的异或。
        2. set1 ^ set2 返回集合的异或。
        3. set.symmetric_difference_update(set) 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

a = set('abracadabra')
b = set('alacazam')
print(a) # {'r', 'a', 'c', 'b', 'd'}
print(b) # {'c', 'a', 'l', 'm', 'z'}
c = a.symmetric_difference(b)
print(c) # {'m', 'r', 'l', 'b', 'z', 'd'}
print(a ^ b) # {'m', 'r', 'l', 'b', 'z', 'd'}
print(a) # {'r', 'd', 'c', 'a', 'b'}
a.symmetric_difference_update(b)
print(a) # {'r', 'b', 'm', 'l', 'z', 'd'}

         1. set.issubset(set) 判断集合是不是被其他集合包含,如果是则返回 True,否则返回 False。
        2. set1 <= set2 判断集合是不是被其他集合包含,如果是则返回 True,否则返回 False。

x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b", "a"}
z = x.issubset(y)
print(z) # True
print(x <= y) # True
x = {"a", "b", "c"}
y = {"f", "e", "d", "c", "b"}
z = x.issubset(y)
print(z) # False
print(x <= y) # False

        1. set.issuperset(set) 用于判断集合是不是包含其他集合,如果是则返回 True,否则返回 False。
        2. set1 >= set2 判断集合是不是包含其他集合,如果是则返回 True,否则返回 False。

x = {"f", "e", "d", "c", "b", "a"}
y = {"a", "b", "c"}
z = x.issuperset(y)
print(z) # True
print(x >= y) # True
x = {"f", "e", "d", "c", "b"}
y = {"a", "b", "c"}
z = x.issuperset(y)
print(z) # False
print(x >= y) # False

        set.isdisjoint(set) 用于判断两个集合是不是不相交,如果是返回 True,否则返回 False。

x = {"f", "e", "d", "c", "b"}
y = {"a", "b", "c"}
z = x.isdisjoint(y)
print(z) # False
x = {"f", "e", "d", "m", "g"}
y = {"a", "b", "c"}
z = x.isdisjoint(y)
print(z) # True

1.4 集合的转换

se = set(range(4))
li = list(se)
tu = tuple(se)
print(se, type(se)) # {0, 1, 2, 3} <class 'set'>
print(li, type(li)) # [0, 1, 2, 3] <class 'list'>
print(tu, type(tu)) # (0, 1, 2, 3) <class 'tuple'>

1.5不可变集合


        Python 提供了不能改变元素的集合的实现版本,即不能增加或删除元素,类型名叫 frozenset 。需要注意的是 frozenset 仍然可以进行集合操作,只是不能用带有 update 的方法。

        frozenset([iterable]) 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

a = frozenset(range(10)) # 生成一个新的不可变集合
print(a) 
# frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
b = frozenset('lsgogroup')
print(b) 
# frozenset({'g', 's', 'p', 'r', 'u', 'o', 'l'})


 

[特殊字符]交通标志检测与分类数据集-智能驾驶系统 地图数据更新 1,886张图片 🚦交通标志检测与分类数据集-智能驾驶系统 地图数据更新 1,886张图片 阅读详情

相关推荐

Abaqus边界条件设置避坑指南:为什么你的实体单元转动自由度总是不生效?

本文深入解析了Abaqus中实体单元转动自由度设置失效的根本原因。从力学原理与有限元节点自由度的本质区别出发,阐明了实体单元仅具有平动自由度,直接约束其转动自由度是无效操作。文章提供了对称边界条件的正确设置方法,并给出了使用耦合约束等高级方案来模拟真实抗转动约束的实战指南,帮助用户避免常见建模陷阱。

weixin_29290379的博客 620

python基础训练—集合

本篇文章中,我介绍了集合的基础知识,大家想要了解的或是复习的都可以来看看,说不定就有所收获。

weixin_62838986的博客 1272

航测无人机las点云数据生成DEM

“ 做航测的同僚都知道,Pix4D或者CC(ContextCapture)都可以生成DSM,往往高程点提取以及土方计算都需要用到DEM,PhotoScan软件可以提出地面点并只应用地面点连接三角网,然而分类效果差,生成的DEM不管是平整度还是精度,都不理想。而传统等高线生DEM需要耗费较长时间,以下提供一种参考方法,供大家探讨。 ” 1 点云数据 航测类软件大多可以生成点云数据,如Pix4D,PhotoScan,CC等,此次点云数据为citymapper2相片基于CC生产的Las点云。 2 筛选地面点 筛.

qq_43173805的博客 1万+

Python题型--集合练习题

1、生成了N个1~100之间的随机整数(N <= 1000),N是用户输入的;对于期指其中重复的数字,只保留一个,把其余相同的数字去掉;2、怎么使用集合完成列表的去重操作,并将最终的列表由大到小排序输出。

m0_68976043的博客 5282

投入产出表之直接消耗系数和完全消耗系数计算--基于Excel

介绍 上篇博客已介绍投入产出表的结构类型及意义解读,在此就不重复写了。 投入产出法中相对稳定的因素是一些系数,根据投入产出表可以计算很多系数: 案例 案例数据即流量矩阵,采用的是中国2012年的部分行业数据,若有不对,请批评指正哈。 直接消耗系数的计算 根据上表和直接消耗系数的计算公式,直接消耗系数矩阵通常用A表示。农林牧渔产品和服务部门对其他部门产品的直接消耗系数分别为: 这些消耗系数的经济意义是,农、林、牧、渔产品和服务部门每生产单位(1亿元)总产出,要直接消耗0.1378亿元本部门产品,0.26

m0_46271335的博客 7万+

Adams与Matlab联合仿真入门:从零搭建你的第一个动力学模型

本文为Adams与Matlab联合仿真新手提供了一份详尽的入门指南。文章从软件环境配置、版本兼容性检查讲起,逐步演示了如何在Adams中构建单摆动力学模型并定义输入输出接口,以及在Matlab/Simulink中搭建控制回路。通过一个完整的受控单摆实例,手把手教你完成从模型导出、模块生成到执行联合仿真的全流程,帮助你快速搭建并运行第一个联合仿真模型,实现动力学与控制系统的协同验证。

g5h6i7j的博客 699

【练习题】python集合练习

例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3。2022/1/1 --> 今年第1天。用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)nums = [1,2,2,1,3] --> 打印1、2。实现给定一个日期,判断这个日期是今年第几天的程序(b. 求只选了第一个学科的人的数量和对应的名字。c. 求只选了一门学科的学生的数量和对应的名字。d. 求只选了两门学科的学生的数量和对应的名字。e. 求选了三门学生的学生的数量和对应的名字。

早八人的上课笔记收录哈哈哈 3982

Android 自动亮度

/则需要从BrightnessConfigure类中读取两个数组源:config_autoBrightnessLevels和config_autoBrightnessDisplayValuesNits。) 或知道其在DisplayPowerController()构造的时候初始化的。曲线设置好了,就应该扔代码里跑起来,模型建起来了,这个过程是咋样的呢?//它将负责曲线的创建,自动背光值的计算等。通过搜索配置关键词(

Android 1483

Python 集合的实战应用:基本操作与练习

在 Python 中,集合(set)是一种非常有用的数据结构,可以用来存储不重复的元素。我们可以使用集合的差集(difference)操作来从 set1 中移除 set2 中存在的元素。通过这个练习,我们学习了如何使用 Python 的集合来进行基本的操作,包括找交集、取差集和添加元素。我们可以使用集合的交集(intersection)操作来找出两个集合中的共有元素。,这就是从 set1 中移除 set2 存在的元素后的结果。检查这两个集合是否有相同的元素,如果有,输出共有的元素。方法来向集合中添加元素。

AI悦创·编程私教1v1 539

安装 miniconda linux

安装 miniconda linux

jacke121的专栏 1万+

1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目

本文介绍如何在 SAP ABAP 事物码 SEGW 里创建 SEGW 项目,使用工具生成 Runtime 运行时需要的资源。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5429

Python “集合” 100道实战题目练习,巩固知识、检查技术

本文主要是作为Python中列表的一些题目,方便学习完Python的列表之后进行一些知识检验,感兴趣的小伙伴可以试一试,含选择题、判断题、实战题,。通过这些题目,学习者可以检验自己对Python字典基础知识的掌握程度。

小白的大数据之旅的博客 2602

【优化模型】求解混合整数线性规划 MILP 问题

混合整数线性规划(Mixed Integer Linear Programming,MILP)是一类优化问题,其中目标函数和约束条件均为线性,并且包含整数变量。MILP 在实际应用中具有广泛的应用,可以解决很多实际问题,如生产调度、网络设计、资源分配等。f — 系数向量。系数向量,指定为实数向量或实数数组。intcon — 整数约束组成的向量。整数约束组成的向量,指定为正整数向量。intcon 中的值指示决策变量 x 中应取整数值的分量。A — 线性不等式约束。线性不等式约束,指定为实矩阵。

Fanjufei的博客 2495

天池python训练营Day09

魔法方法 魔法方法总是被双下划线包围,例如__init__。 魔法方法的第一个参数应为cls(类方法) 或者self(实例方法)。 cls:代表一个类的名称 self:代表一个实例对象的名称 子类的方法__init__() 创建子类的实例时,python首先需要完成的任务是给父类的属性赋值。为此,子类的方法__init__()需要父类的帮助. // A code block class Rectangle: def __init__(self, x, y): #实例化都要带self

彼岸星空 256

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2021-09 天池PythonTask2

列表是我用得最频繁的,基本都懂了 Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串 字符串不属于一种数据类型,字符串内可以用转义字符,也可以进行切片操作。 当要用内置方法的时候,可以直接在网上搜索,不需要死记硬背,用多了就记住了、 字典也是常用的数据结构,最近学requests就用字典创建了headers和params等参数 集合没怎么用过,知道就可 序列其实就是把一个数据转成列表 ...

Bugmaker's blog 196

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

2020-09-09

Python基础入门:从变量到异常处理(2)--阿里云天池学习内容概括今天主要学习到的内容有:具体学习内容学习问题和解决方法记录学习总结 学习内容概括 今天主要学习到的内容有: 条件语句 循环语句 具体学习内容 条件语句 if 语句 if - else 语句 if - elif - else 语句 assert 关键词 循环语句 while 循环 while - else 循环 for 循环 for - else 循环 range() 函数 enumerate()函数 enumerate(sequ

m0_45665201的博客 197

python删除一列数据_python删除txt第一列数据库

带你读《Python数据分析与数据化运营(第2版)》之一:Python和数据化运营点击查看第二章点击查看第三章Python数据分析与数据化运营(第2版)宋天龙 著第1章 Python和数据化运营数据化运营是提高利润、降低成本、优化运营效率、最大化企业财务回报的必要课题。Python作为数据科学界的关键工具之一,几乎可以应用于所有数据化运营分析和实践的场景。本章将首先介绍...文章温柔的养猫人201...

weixin_39621774的博客 2602

python 哪些比赛-国内数据挖掘比赛有哪些?

(文章来自公众号:Python或R人工智能学习,ID:Python_R_wu,后附学习资料。)随着人工智能的发展,越来越多的公司开始举办大数据比赛,题目类型也越来越丰富,短视频、自动驾驶等题材越来越多。下面是截止到9月还在进行中的比赛,大家选择性参加,以赛促学。公众号后附学习资料。天 池01)2018广东工业智造大数据创新大赛——智能算法赛¥550,000智能算法赛以“铝型材表面瑕疵识别”为主题,...

weixin_39655981的博客 4964

nlp中文自然语言处理的学习资源

此资源为博主学习时使用到的一些视频、工具与文档。 欢迎大家留言补充!!!!!!!!! 实时更新中!!!!!! 视频区 1.动手学中文分词 链接:https://www.bilibili.com/video/BV19E411o7Yc?from=search&seid=16310963411565849981 2.超实用Python文本挖掘视频教程 文本分析 词云分析 NLP 自然语言处理 链接:https://www.bilibili.com/video/BV1dK4y1t7zD?p=63&t

qq_42092076的博客 640

使用sklearn进行集成学习——理论

转:http://www.cnblogs.com/jasonfreak/p/5657196.html目录1 前言2 集成学习是什么?3 偏差和方差   3.1 模型的偏差和方差是什么?   3.2 bagging的偏差和方差   3.3 boosting的偏差和方差   3.4 模型的独立性   3.5 小结4 Gradient Boosting  4.1 拟合残差 ...

qq_24509229的博客 238

Python学习——集合

python学习——集合

m0_46155417的博客 6578

python------集合练习

一、集合的定义 1.集合里面的元素是不可重复的 s = {1,2,3,1,2,3,4,5} print(s) print(type(s)) s1 = {1} print(s1) print(type(s1)) 2.如何定义一个空集合 s2 = {} print(type(s2)) s3 = set([]) print(s3) print(type(s3)) 3.集合的应用 li = [1,2,3,...

一只胖橘猫的博客 3697

Python的集合、总结例题篇(下)

Python的集合的性质,常用的方法(元素的添加、删除和清空),集合类型的操作符,例题解析

申小兮和林小兮的博客宝 3267

第3周 Python字典、集合刷题

第3周 Python字典、集合刷题及参考答案。

rainchxy的博客 2086

集合练习题

本文介绍了Python集合操作的5个典型应用场景:1)计算两个集合的并集、交集和差集;2)利用集合特性去除列表重复元素;3)通过集合运算分析用户行为数据;4)验证VIP用户时使用集合去重提高效率;5)模拟抽奖系统和单词处理时的集合操作。所有示例都提供了具体实现代码和预期输出格式,展示了集合在元素去重、数学运算和随机操作等方面的应用价值。

呆萌很的博客 970

python日常练习 集合,函数

一 ,集合 1.1集合的特点 集合是无序 ,集合中的元素是唯一的,集合一般运用于列表或者元组进行去重的 1.2 集合的格式 变量名 = set ( 元素,元素) 变量名 = {元素,元素} 注意:下面写法为一个空字典,为空默认是字典,如果有数据在根据格式判断为字典还是集合 name = {} 1.3添加元素 1.3.1 add nums = {11,222,33,44,55,66} nums。add(222) 1.3.2 uddate 将列表的数据添加到 集合 nums = {11,25,

m0_64132019的博客 1316

小鱼C python - 集合的练习(去重、解密)

2.创建z的字典,并且用dict.fromkeys()添加该值。该参数必须是可迭代对象(所以可以用列表存放)1. 生成100个1~100的随机值。2.然后用字典的映射特性 一一对应查找。题一:用字典实现集合的去重特性。1.遍历x,并且该值必须也在y中。整体代码(用列表推导式,简洁)题二:破解用哈希值加密过的密码。1.存放所有字符转的哈希值。1. range 范围。字符串转为哈希值的方法。

m0_60979337的博客 358
上一篇: 蓝桥杯-第13届-求和(c++ 两种方法)
下一篇: 天池Python练习10-函数
StrawBerryTreea
博客等级 码龄9年 141粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值