热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python之集合的特性及常用方法

集合#集合里面的元素是不可重复的s{1,2,3,4,1,2,3,4,[1,2,3,4]}print(s,type(s))s{1,2,3,4,1,2,3,4,[1,2,3,4]}Ty

集合

#集合里面的元素是不可重复的

s = {1,2,3,4,1,2,3,4,[1,2,3,4]}
print(s,type(s))
s={1,2,3,4,1,2,3,4,[1,2,3,4]}
TypeError: unhashable type: 'list'
s={1,2,3,4,1,2,3,4}
print(s,type(s))
{1, 2, 3, 4}

#定义一个空集合

s2 = {} #默认情况下是dict
print(s2,type(s2))
{}
s3 = set([]) #正确定义空集合
print(s3,type(s3))
set()
#列表去重
li = [1,2,3,1,2,3,4,5,6,4,5,6]
print(list(set(li)))
[1, 2, 3, 4, 5, 6]

集合的特性

集合支持的特性只有:成员操作符

s = {1,2,3}
print(1 in s)
print(1 not in s)
True
False
for i in s:
print(i,end='')
print()
print('~~~~~~~~~~~~')
123
~~~~~~~~~~~~

集合的常用方法

集合是一个可变的数据类型
添加顺序和在集合中存储的顺序不同

s = {6,7,8,9,1,2,3}
print(s)
{1, 2, 3, 6, 7, 8, 9}
#添加
s.add(10)
s.add(0)
print(s)
{0, 1, 2, 3, 6, 7, 8, 9, 10}
#增加多个元素
s.update({3,4,5,6,7,8})
print(s)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#删除
s.pop()
s.pop()
s.pop()
print(s)
{3, 4, 5, 6, 7, 8, 9, 10}
#删除指定元素 元素必须要存在
s.remove(3)
print(s)
{4, 5, 6, 7, 8, 9, 10}
s.remove(3)
print(s)
s.remove(3)
KeyError: 3

交集 并集 差集

s1 = {1,2,3}
s2 = {2,3,4}
#并集
print('并集:',s1.union(s2))
print('并集:',s1 | s2)
并集: {1, 2, 3, 4}
#交集
print('交集:',s1.intersection(s2))
print('交集:',s1 & s2)
交集: {2, 3}
#差集
#s1和s2的差集:s1中有哪些元素s2中没有
print('差集:',s1.difference(s2))
print('差集:',s1-s2)
差集: {1}
#s2和s1的差集
print('差集:',s2.difference(s1))
print('差集:',s2-s1)
差集: {4}
#对等差分:并集 - 交集
print('对等差分:',s1.symmetric_difference(s2))
print('对等差分:',s1^s2)
对等差分: {1, 4}
s3 = {'redhat','westos'}
s4 = {'redhat','westos','linux'}
#s3是否s4的子集
print(s3.issubset(s4))
True
#s3是否s4的超集
print(s3.issuperset(s4))
False
#两个集合是不是不相交
print(s3.isdisjoint(s4))
False

—————练习—————

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

import random
N = int(input('请输入数量:'))
nmb = []
for i in range(N):
nmb.append(random.randint(1, 1000))
set(nmb)
nmb.sort()
print(nmb)
------------------OR--------------------------
import random
s = set([])
for i in range(int(input('N:'))):
s.add(random.randint(1,1000))
print(sorted(s))

推荐阅读
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 每年,意甲、德甲、英超和西甲等各大足球联赛的赛程表都是球迷们关注的焦点。本文通过 Python 编程实现了一种生成赛程表的方法,该方法基于蛇形环算法。具体而言,将所有球队排列成两列的环形结构,左侧球队对阵右侧球队,首支队伍固定不动,其余队伍按顺时针方向循环移动,从而确保每场比赛不重复。此算法不仅高效,而且易于实现,为赛程安排提供了可靠的解决方案。 ... [详细]
  • 哈希表(Hash Table)是一种高效的查找算法,与传统的链表和树结构相比,其在查找过程中无需进行逐个元素的比较。本文将深入探讨哈希表的基本原理、应用场景以及优化策略,帮助读者全面理解其在实际开发中的优势和局限性。通过实例分析和代码示例,我们将展示如何有效利用哈希表提高数据处理效率,并解决常见的冲突问题。 ... [详细]
  • 在CentOS 6.5环境中,本文详细介绍了如何配置SSH无密钥登录,并成功执行PSSH命令。首先,确保系统已安装PSSH工具,可使用 `yum install pssh` 进行安装。若未配置免密钥登录,PSSH命令将无法正常执行,例如尝试运行 `pssh -H root@192.168.245.129 -i uptime` 时会失败。通过生成并分发SSH公钥,可以实现无密码登录,从而顺利执行PSSH命令。此外,本文还提供了详细的步骤和常见问题的解决方案,帮助用户顺利完成配置。 ... [详细]
  • 本讲深入探讨了 Python 中集合的基本概念及其符号表示方法,通过实例代码详细解析了如何将列表转换为集合,并展示了集合在数据处理中的独特优势。 ... [详细]
  • 效果预览1基本使用代码voidmain(){启动根目录runApp(MaterialApp(home:TestTipsPage(),));}classTestTipsPageext ... [详细]
  • 今日份分享:Flutter自定义之旋转木马
    今日份分享:Flutter自定义之旋转木马-先上图,带你回到童年时光:效果分析子布局按照圆形顺序放置且平分角度子布局旋转、支持手势滑动旋转、快速滑动抬手继续旋转、自动旋转支持X轴旋 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 解决问题:1、批量读取点云las数据2、点云数据读与写出3、csf滤波分类参考:https:github.comsuyunzzzCSF论文题目ÿ ... [详细]
  • 数据库多表联合查询:内连接与外连接详解
    在数据库的多表查询中,内连接和外连接是两种常用的技术手段。内连接用于检索多个表中相互匹配的记录,即只有当两个表中的记录满足特定的连接条件时,这些记录才会被包含在查询结果中。相比之下,外连接则不仅返回匹配的记录,还可以选择性地返回不匹配的记录,具体取决于左外连接、右外连接或全外连接的选择。本文将详细解析这两种连接方式的使用场景及其语法结构,帮助读者更好地理解和应用多表查询技术。 ... [详细]
  • Python之基础篇(三)
    基础篇之三:一,数据类型之set.总结:set无序,不重复。1,创建set:s{1,2,3}print(s,type(s))list1[1,2,3]s1(list1)prin ... [详细]
author-avatar
无敌BUG
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有