草庐IT

【创作赢红包】python学习——【第七弹】

沃和莱特 2023-05-11 原文

前言

上一篇文章 python学习——【第六弹】中介绍了 python中的字典操作,这篇文章接着学习python中的可变序列 集合

集合

1: 集合是python语言提供的内置数据结构,具有无序性(集合中的元素无法通过索引下标访问,并且每次输出时元素的排序顺序可能都不相同。),互异性确定性

2 :与列表、字典一样都属于可变类型的序列;但集合中的元素是不能重复的,因此可以利用集合为一组数据去重。

3: 集合是没有value的字典​

创建方式

1:可以直接使用花括号创建: set_name={11,22,‘hello’,‘world’}

2:使用内置函数set() 创建(set() 函数为 Python 的内置函数,其功能是将字符串、列表、元组、range 对象等可迭代对象转换成集合。)创建方式: set_name=set(iteration)

jihe={11,22,33,44}
print(jihe,type(jihe),id(jihe))
# {33, 11, 44, 22} <class 'set'> 140157225363408

jihe2=set(('hello','world',11)) #注意是双括号
print(jihe2,type(jihe2),id(jihe2))
# {'hello', 11, 'world'} <class 'set'> 140157225362928

set1 = set("hello,world")
set2 = set([1, 2, 3, 4, 5])
set3 = set((1, 2, 3, 4, 5))
set4 = set(range(1, 9))
print(set1) #{'o', 'd', 'e', 'r', ',', 'w', 'h', 'l'}
print(set2) #{1, 2, 3, 4, 5}
print(set3) #{1, 2, 3, 4, 5}
print(set4) #{1, 2, 3, 4, 5, 6, 7, 8}

字典转set集合,需要注意的是,只取了字典的key,相当于将字典中的dict.keys()列表转成set集合。

jihe4=set({'a':2,'b':3,'c':4})
print(jihe4)
# {'c', 'a', 'b'}

空集合的创建:

如果要创建空集合,只能使用 set() 函数实现。
因为直接使用一对 {},Python 解释器会将其视为一个空字典。

s=set()
print(s,type(s),id(s))
# set() <class 'set'> 140549035954496
s1=set([])#列表
print(s1,type(s1),id(s1))
# set() <class 'set'> 140549035954736
s2=set(())#元组
print(s2,type(s2),id(s2))
# set() <class 'set'> 140549035954976
s3=set({})#字典
print(s3,type(s3),id(s3))
# t() <class 'set'> 140549035955456

访问集合中的元素

由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来,或者使用 in 关键字查询集合中是否存在指定值。

sets= {11,'c',1,(1,2,3),'hello'}
for setss in sets:
    print(setss,end=' ') 
 #1 11 (1, 2, 3) c hello 

删除集合元素

使用 remove() 方法,语法格式如下:set_name.remove(element)

set1 = {11, 'hello', 1, (1, 2, 3), 'world', 'aa'}
set1.remove(11)
print(set1)
# {1, 'hello', 'world', (1, 2, 3), 'aa'}

如果删除的元素不再集合内,则会抛出 KeyError 错误

也可以使用 discard() 方法,该方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,不会抛出任何错误,但会返回原集合。

使用pop()函数随机移除集合中的一个元素

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

删除集合

可以通过del()关键字删除整个集合对象

set1 = {11, 'hello', 1, (1, 2, 3), 'world', 'aa'}
print(set1)
del set1
print(set1)
# NameError: name 'set1' is not defined

向集合中添加元素

可使用set类型提供的 add() 方法实现,add() 方法添加的元素,只能是数字、字符串、元组等不可变类型或者布尔类型,不能添加列表、字典、集合等可变的数据,否则Python解释器会抛出TypeError错误。如果该元素已存在,则 add() 方法就不会添加元素

set2= {1, 2, 3}
print('添加元素之前集合的信息:',set2,type(set2),id(set2))
# {1, 2, 3} <class 'set'> 140033352959952
set2.add((1, 2))
print('添加元素后集合的信息:',set2,type(set2),id(set2))
# 添加元素后集合的信息: {(1, 2), 1, 2, 3} <class 'set'> 140033352959952

使用update()函数向当前的集合中添加集合

x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"} 
x.update(y) 
print(x)
# {'cherry', 'runoob', 'banana', 'apple', 'google'}

集合的运算

每篇一语

工欲善其事,必先利其器!

到此对于python中的序列就介绍完了,接下来还会持续更新python学习——【第N弹】

如有不足,感谢指正!

有关【创作赢红包】python学习——【第七弹】的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  3. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  4. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  5. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  6. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

  7. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  8. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  9. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  10. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

随机推荐