python—集合

1. 集合的概念和建立:

Python中的集合和数学中的集合类似,可以保存不重复的元素。它有可变集合(set)和不可变集合(frozenset)两种。
集合是不重复的并且无序的序列。
集合创建可以使用{}以及set()的方式。
创建空集合的时候,必须使用set([]),使用{}创建出来的是一个空字典
1 . 创建集合

name = {1, 'http', ('ftp', 'ssh')}	#元素可以是数字,字符串,元组
print(name)运行结果:
{1, 'http', ('ftp', 'ssh')}

使用set()函数创建

setname1 = set('剑魔天下第一!')  #字符串
setname2 = set([3.5, 'http'])   #列表
setname3 = set(('宇智波斑', '千手柱间'))  #元组
setname4 = set(range(1, 10, 2))   #range
print(setname1)
print(setname2)
print(setname3)
print(setname4)运行结果:
{'一', '第', '下', '魔', '剑', '!', '天'}
{3.5, 'http'}
{'宇智波斑', '千手柱间'}
{1, 3, 5, 7, 9}

在创建空集合时,只能用set函数来创建

setname = set()		#空集合

2. 集合的特性:

集合只支持成员操作符以及for循环遍历
1 成员操作符
通过成员操作符 判断元素是否属于该元组:

in       # <元素> in <集合>  属于则为True,不属于为False
not in   # <元素> not in <集合>  不属于则为True,属于为Falses = {1,2,3}
print(1 in s)
print(1 not in s)运行结果:
True
False

2 for 循环遍历
使用for 语句 可以取到集合中每一个元素的值

s1 = {1,4,6,2,7}
for i in s1 :print(i)运行结果:
1
2
4
6
7

3. 集合常用的方法:

1、向集合中添加元素

setname = set([1, 'http', 'ftp', 'ssh'])
print(setname)
setname.add('add')
print(setname)运行结果:
{1, 'http', 'ssh', 'ftp'}
{'add', 1, 'http', 'ssh', 'ftp'}

2、从集合中删除元素

setname = set([1, 'http', 'ftp', 'ssh'])
setname.remove(1)
print(setname)运行结果:
{'ftp', 'ssh', 'http'}

随机删除一个元素

setname = set([1, 'http', 'ftp', 'ssh'])
setname.pop()
print(setname)运行结果:
{'http', 'ftp', 'ssh'}

清空集合:

setname = set([1, 'http', 'ftp', 'ssh'])
setname.clear()
print(setname)运行结果:
set()

删除集合

del 集合名

4. 集合的运算:

1 . 并集:

s1 = {1,2,3}
s2 = {2,3,4}
print('并集:',s1.union(s2))
print('并集:',s1 | s2)运行结果:
并集: {1, 2, 3, 4}
并集: {1, 2, 3, 4}

2 . 交集:

s1 = {1,2,3}
s2 = {2,3,4}
print('交集:',s1.intersection(s2))
print('交集:',s1 & s2)运行结果:
交集: {2, 3}
交集: {2, 3}

3 . 差集:
s1和s2的差集:s1中有哪些元素s2中没有

s1 = {1,2,3}
s2 = {2,3,4}
print('差集:',s2.difference(s1))
print('差集:',s2-s1)运行结果:
差集: {4}
差集: {4}

4 . 对等差分:并集 - 交集

s1 = {1,2,3}
s2 = {2,3,4}
print('对等差分:',s1.symmetric_difference(s2))
print('对等差分:',s1^s2)运行结果:
对等差分: {1, 4}
对等差分: {1, 4}

5 . 判断

s3 = {'redhat','westos'}
s4 = {'redhat','westos','linux'}
print(s3.issubset(s4))      # s3是否s4的子集
print(s3.issuperset(s4))       # s3是否s4的超集
print(s3.isdisjoint(s4))        # 两个集合是不是不相交运行结果:
True
False
False

练习题:
华为机测题:
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性
他先用计算机生成了N个1~1000之间的随机整数(N<=1000)
,N是用户输入的,对于
其中重复的数字,只保留一个,把其余相同的数字去掉,
不同的数对应着不同的学生的学号,
然后再把这些
数从小到大排序,按照排好的顺序去找同学做调查,
请你协助明明完成“去重”与排序工作

import randoms = set([])
for i in range(int(input('N:'))):s.add(random.randint(1,1000))
print(sorted(s))

还有一种方法:

import random
max = int(input('请输入数量N <=1000 :'))
sid = set([])
while max > 0 :sid.add(random.randint(1,1000))max -= 1
sid2 = sorted(sid)
print(sid2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十九天

今天是学习js的第三天&#xff0c;已经感觉脑内存不够用了。 想想后续还有这么多Php的课程要学习&#xff0c;真心有点怕怕的。希望以后时间过的慢一些&#xff0c;让我好好的掌握这门技术吧。 另外&#xff0c;学习js里面还有好多的应用需要自己去掌握&#xff0c;我希望能够通…

弹性理论法研究桩基受力计算公式_竖向荷载下群桩的承载力分析

竖向荷载下群桩的承载力分析桩基础在工程建设当中得到广泛地应用,从安全性上考虑,对群桩承载力的研究尤为重要。文章结合一工程实例,根据现场取得的静载荷试验数据,(本文共4页)阅读全文>>墙体顶部斜裂缝问题一直是困扰设计和施工人员的重要课题,以往的研究往往将这种斜裂…

Java LocalDate类| getChronology()方法与示例

LocalDate类getChronology()方法 (LocalDate Class getChronology() method) getChronology() method is available in java.time package. getChronology()方法在java.time包中可用。 getChronology() method is used to return the IsoChronology of this LocalDate object. …

python—字典

1.字典的含义&#xff1a; 字典和列表类似&#xff0c;是可变序列&#xff0c;与列表不同的是&#xff0c;字典是无序的可变序列&#xff0c;保存的内容是以 键值对 的形式存放的。键是唯一的&#xff0c;而值可以是多个。值可以取任意数据了类型&#xff0c;但键必须是不可变…

js中加“var”和不加“var”的区别,看完觉得这么多年js白学了

Javascript声明变量的时候&#xff0c;虽然用var关键字声明和不用关键字声明&#xff0c;很多时候运行并没有问题&#xff0c;但是这两种方式还是有区别的。可以正常运行的代码并不代表是合适的代码。var num 1&#xff1b; 是在当前域中声明变量. 如果在方法中声明&#xff0…

解决方案_智能工厂全套解决方案

最近弱电社群资料更新情况&#xff1a;1、弱电学习圈VIP群资料整理-希望对您有用&#xff01;2、弱电学习圈VIP技术交流2群成立&#xff0c;欢迎您加入&#xff01;3、智慧校园整体解决方案&#xff01;4、智能化弱电项目管理表单大全-弱电项目经理必备&#xff01;5、弱电项目…

退火算法 贪婪算法_算法贪婪策略简介

退火算法 贪婪算法介绍 (Introduction) The solution is determined by a sequence of steps each step has given a particular solution and later a complete solution to given the problem can be achieved. In short, while making a choice there should be a greed for…

windows 2008 R2系统安装拨号v p n详细配置

windows 2008 R2系统单网卡安装拨号v p n系统环境&#xff1a;windows 2008 R2操作步骤首先设置服务端在服务器管理器中添加角色“网络策略和访问服务”&#xff0c;并安装以下角色服务右击路由与远程访问&#xff0c;选择“配置并启用路由和远程访问”右击路由与远程访问&…

python—函数

1. 函数的定义&#xff1a; 1 . 含义&#xff1a;我们把实现某一功能的代码定义为一个函数&#xff0c;在需要使用时&#xff0c;随时调用&#xff0c;十分方便。对于函数&#xff0c;简单理解就是可以完成某功能的代码块&#xff0c;可反复使用。 Python提供了许多内建函数&a…

word打开老是配置进度_小白教程 | office出现配置进度框,怎么办?

最近很多同学在备考二级时候&#xff0c;自己的电脑上office软件Word或者Excel出问题了&#xff0c;每次打开都会出现配置进度框。这种情况怎么办呢&#xff1f;这种情况都是注册表的问题&#xff0c;马上安排解决之前在 右键菜单没有office新建怎么办(点击即可阅读)也是用注册…

【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~...

一、写在前面 自使用android studio开始&#xff0c;就被它独特的依赖方式&#xff1a;compile com.android.support:appcompat-v7:25.0.1所深深吸引&#xff0c;自从有了它&#xff0c;麻麻再也不用担心依赖第三方jar包繁琐无趣啦。而&#xff0c;如果自己写一个开源库是一种怎…

scala集合中添加元素_如何在Scala中获得列表的第一个元素?

scala集合中添加元素清单 (List) A list is a linear data structure. It is a collection of elements of the same data types. 列表是线性数据结构。 它是相同数据类型的元素的集合。 Scala libraries have many functions to support the functioning of lists. Methods l…

python—列表、字典生成式

1 列表生成式 Python内置的一种极其强大的生成列表 list 的表达式。返回结果必须是列表。 示例&#xff1a; 需求1&#xff1a;接收变量 k a b s 51 5000 10000 a s.split() li [] for item in s.split():li.append(int(item)) k,a,b li print(k,a,b)运行结果&#xff1a;…

excel数据平均分配给多人_excel表格 怎样均分数据-用Excel怎么才能将组数据平均分配给几个人...

怎样在Excel表格中求平均数?在excel中怎样自动生成各班各科的平均成绩可以调用Excel函数库的函实现。步骤如下&#xff1a;1. 在单元格内点击上公式-平均值”。2. 点击需要参与计算的单元格数据&#xff0c;符号用键盘输入&#xff0c;最后回车即可。百度百科-Excel函数exce…

Java中List和Map接口之间的区别

列表与地图界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we will see the points given below, 在这里&#xff0c;我们将看到List与Java中的Map接口有何不同&#xff0c;并且我们将看到以下几点&#xff0c; 列表界面 (…

python—高阶函数

什么是内置高阶函数&#xff1a; 一个函数可以作为参数传给另外一个函数&#xff0c;或者一个函数的返回值为另外一个函数&#xff08;若返回值为该函数本身&#xff0c;则为递归&#xff09;&#xff0c;满足其一则为高阶函数。 Python中内置了几个常用的高阶函数&#xff0c;…

功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了

随着计算机硬件的不断更新换代显示设备的不断更新从原来的分辨率640 X 480啥原来分辨这么低呀&#xff1f;还记得DOS吗&#xff1f;或者Win95,win98吗当时显示器分辨率能调到800X 600很好了2000年左右随着纯平显示器的推出也有了高清显示器的概念那么一般我们说的高清显示器分辨…

nginx1.10.2源码安装配置参数参考

[rootlocalhost nginx-1.10.2]# ./configure --help--help print this message--prefixPATH set installation prefix #Nginx安装的根路径,默认为 /usr/local/nginx。--sbin-pathPATH set nginx binary pathname #指定nginx二进制文件的路径,默认为PATH/sbin/n…

c ++查找字符串_C ++朋友功能| 查找输出程序| 套装1

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int A, B;friend void fun();};void fun(){Sample S;S.A 10;S.B 20;cout << S.A << " " << S.B << endl;}int main(){fun();retu…

Spring定时器的运用

为什么80%的码农都做不了架构师&#xff1f;>>> 一、spring4定时器任务配置如下&#xff1a; <bean id"jsapiTask" class"chan.ye.dai.wexin.JsapiTicketTimeTask" /><bean id"jobDetail"class"org.springframework.s…