Python中的set
set_lst = [
('集合容器不可哈希',),
('集合中的元素必须可哈希',),
('集合是无序的',),
('集合自动去重',),
('增',),
('删',),
('查',),
('集合运算',),
('练习',),
]
集合容器不可哈希
>>>hash(set())
TypeError: unhashable type: 'set'
集合中的元素必须可哈希
>>>num_set = {1, 2, 3, [4]}
TypeError: unhashable type: 'list'
集合是无序的
>>>num_set = {1, 2, 3, 4}
>>>num_set[0]
TypeError: 'set' object does not support indexing
集合自动去重
>>>num_set = {1, 1}
>>>num_set
{1}
增
>>>num_set = {1, 2}
>>>num_set.add(3)
>>>num_set
{1, 2, 3}
>>>num_set.update([4, 5])
>>>num_set
{1, 2, 3, 4, 5}
删
set.pop()理论上是移除并返回任意的集合元素
集合是无序的,所以要删除某一元素时,用remove()方法会更好一些

(PS: Python 3.6.2)

>>>num_set = {1, 2, 3, 4, '5', 6}
>>>num_set.pop()
1
>>>num_set.remove('5')
>>>num_set
{2, 3, 4, 6}
>>>num_set.clear()
>>>num_set
set()
>>>del num_set
>>>num_set
NameError: name 'num_set' is not defined
查
>>>num_set = {1, 2}
>>>for i in num_set:
... i
...
1
2
集合运算
>>>set_1 = {1, 2, 3, 4}
>>>set_2 = {4, 5, 6, 7}
交集
>>>set_1 & set_2
{4}
并集
>>>set_1 | set_2
{1, 2, 3, 4, 5, 6, 7, 8}
反交集
>>>set_1 ^ set_2
{1, 2, 3, 5, 6, 7, 8}
差集
>>>set_1 - set_2
{1, 2, 3}
子集与超集
>>>set_1 < set_2
False
>>>set_1 > set_2
False
练习
运用集合的知识为列表去重
>>>lst = [1, 1, 2, 2, 3, 4]
>>>lst = list(set(lst))
>>>lst
[1, 2, 3, 4]
Python中的set的更多相关文章
- [转]Python中的str与unicode处理方法
早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...
- python中的Ellipsis
...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...
- python中的默认参数
https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...
- Python中的类、对象、继承
类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...
- python中的TypeError错误解决办法
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...
- python中的迭代、生成器等等
本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...
- python2.7高级编程 笔记二(Python中的描述符)
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...
- python cookbook 学习系列(一) python中的装饰器
简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...
- 用 ElementTree 在 Python 中解析 XML
用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
随机推荐
- awk 分解行、字段
1. 格式 格式: awk 'pattern {action} pattern {action}' filename 注:多个文件时,读取从左到右,读完第一个再读取第二个 pattern 1-/正则表 ...
- PHP 中获取文件名及路径
1. basename("/mnt/img/image01.jpg")函数:得到文件名;输出结果为:image01.jpg. 使用 basename($uriString) 我们可 ...
- ArcGIS for Android 中实现要素绘制时固定MapView
最近在项目中遇到这么一个情况,在MapView中要求实现绘制点.线.面. 在这里面就会遇到这么一个问题,绘制折线和多边形型时,每点击一个点屏幕就会跟着晃,使用起来很不方便(使用Note2 触控笔),所 ...
- VS找到了XXX的副本,但是当前源代码与XXX中内置的版本不同
1.博客园有解决ASP.Net出现以上问题的方法: 删除ASP.Net临时文件夹内的dll文件. https://www.cnblogs.com/autumn/p/5261576.html 2.但我的 ...
- jquery-weui picker组件实现只选择年月
var date = new Date() var month = date.getMonth()+1 //获取当前月份 $('#selectTime').picker({ toolbarTempla ...
- Spark的调度
作业调度简介 设计者将资源进行不同粒度的抽象建模,然后将资源统一放入调度器,通过一定的算法进行调度,最终要达到高吞吐或者低访问延时的目的. Spark在各种运行模式中各个角色实现的功能基本一致,只不过 ...
- 2018.10.05 TOPOI提高组模拟赛 解题报告
得分: \(100+5+100=205\)(真的是出乎意料) \(T1\):抵制克苏恩(点此看题面) 原题: [BZOJ4832][Lydsy1704月赛] 抵制克苏恩 应该还是一个比较简单的\(DP ...
- 制作带复选框的ListView控件
实现效果: 知识运用 ListView控件的GridLines //设置是否在ListView控件中显示网格线 public bool GridLines{get;set} 和CheckBoxes ...
- IE脚本调试
打开IE -- 工具 -- Internet选项 -- 高级 --有4项. 1.禁用脚本调试(Internet Explorer)(去掉对勾) 2.禁用脚本调试(其他)(去掉对勾) 3.显示每个脚本错 ...
- windows下编辑器Emacs的安装与配置
一年成为Emacs高手(像神一样使用编辑器) http://blog.csdn.net/redguardtoo/article/details/7222501 原创作品,允许转载,转载时请务必以超 ...