python笔记--集合

集合set

set和dict类似,也是一组key的集合,但不存储value。所以,特点是无序、不重复。基本功能包括消除重复元素和关系测试. 集合对象还支持并、交、差、对称差数学运算。

一、定义集合

>>> s=set([1,2,3])
>>> s
set([1, 2, 3])

要创建一个set,需要提供一个list作为输入集合,

注意:传入的参数[1, 2, 3]是一个list,而显示的set([1, 2, 3])只是告诉你这个set内部有1,2,3这3个元素,显示的[]不表示这是一个list。

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
set([1, 2, 3])

重复元素在set中自动被过滤。

二、集合的基本操作

#添加元素

>>> s.add(4)
>>> s
set([1, 2, 3, 4])
>>> s.add(4)
>>> s
set([1, 2, 3, 4])

#删除元素remove,如果没有会返回异常。

>>> s.remove(4)
>>> s
set([1, 2, 3])

#删除元素,如果存在,就删除;没有不报异常。

>>> s.discard(2)
>>> s
set([1, 3])

#删除第一个元素

>>> s.pop()
1

#清空元素

>>> s.clear()
>>> s
set([])

#跟新元素

>>> x=set([‘a‘,‘b‘,‘c‘])
>>> s.update(x)//将集合x的元素更新到s中
>>> s
set([‘a‘, ‘c‘, ‘b‘])
 
>>> s.update(‘123‘)//把传入的元素拆分为个体传入到集合中
>>> s
set([‘a‘, ‘c‘, ‘b‘, ‘1‘, ‘3‘, ‘2‘])

#列表转换成集合,并实现去重。

>>> list1=[1,2,2,‘a‘,‘b‘,‘b‘]
>>> s=set(list1)
>>> s
set([‘a‘, 1, 2, ‘b‘])

 

三、关系测试

常见的关系表示符:

&    交集

|    并集

-    差集

^    对称差(并集减去交集)

in        是成员为真

not in    不是成员为真

例:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s3=set([1,2])
#交集
>>> s1 & s2
set([2, 3])    或
>>> s1.intersection(s2)
set([2, 3])
#并集
>>> s1 | s2
set([1, 2, 3, 4])    或
>>> s1.union(s2)
set([1, 2, 3, 4])
#差集
>>> s1-s2
set([1])    或
>>> s1.difference(s2)
set([1])
#对称差
>>> s1^s2    
set([1, 4])    或
>>> s1.symmetric_difference(s2)
set([1, 4])
#子集
>>> s3.issubset(s1)    //s3是s1的子集为真
True
 
>>> 1 in s1
True
 
>>> 4 not in s1
True
时间: 2024-10-07 09:10:39

python笔记--集合的相关文章

Python笔记-集合,拷贝

对于列表,元组,集合的异同,有如下解释 #list ----> 允许重复的集合,修改# tuple ----> 允许重复的集合,不修改# set ----> 不允许重复的集合下面是示例代码: 1 s1 = set() 2 s2 = {1,2,3,4} 3 s3 = set([11,22,33,44]) 4 s4 = {3,4,5,6,89} 5 print type(s2) #<type 'set'> 6 s1.add(44) 7 print s1 #set([44]) 8

python笔记集合

1.win_64下编译pyd(编译器用的tdm-gcc-5.1) gcc test.c -shared -Ic:\Python27\include -Lc:\Python27\libs -lpython27 -o test.pyd -D MS_WIN64 如果没有-D MS_WIN64就会出现错误: undefined reference to `__imp_Py_InitModule4' 编译的pyd文件拷贝到:C:\Python27\Lib\site-packages 以后有记录记在评论里面

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a

Python笔记(四)

在<Python笔记(三)>中,我记录关于Python中序列问题的知识.个人觉得确实比Java中的集合框架简单.之前也说了,Python是一种高级面向对象的语言,它的每一个变量都称为对象.今天我接触了面向对象的编程.下面是这篇博客的目录: 1.类与对象 2.输入输出 3.异常 类与对象: 我们都知道面向对象的语言具备四个特性:抽象,继承,封装,多态.Java,C++是这样,Python也不例外.在Python中,我们定义一个类,使用关键字class.形式如下:class classname:.

python笔记之列表和元组

pyhton的列表和元组,说白了其实就是一种数据结构,只是在python当中更加方便的去操作而已.. 1.序列 其实字符串就是采取序列的方式的: string = "hello" print string[0] 结果为:h 对比其他编程语言,python还有一个负值索引的概念: 序列的分片: first = [0,1,2,3,4,5,6,7,9] print first[1:6:2] 针对first[1:6:2]这条语句: 1代表的起始索引,不写,默认为0 6代表结束索引,不写默认为所

嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&amp;seid=10211084839195730432#page=25 中的38-41讲

# -*- coding: utf-8 -*-#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的38-41讲# 文件# 文件是存储在外部介质上的数据或信息的集合# 文件是有序的数据序列# 常用的编码# ASCII码是标准化字符集# 7个二进制位编码# 表示128个字符 # ord() 将字符转化为ASCII码, chr() 将AS

嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&amp;seid=15873837810484552531 中的15-22讲

#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=15873837810484552531 中的15-22讲#数字类型的关系#三种类型存在一种逐渐扩展的关系:#整数 ->浮点数 ->复数(整数是浮点数的特殊,浮点数是复数的特殊)#不同数字类型之间可以进行混合运算,运算后生成的结果为最宽类型.如整数+浮点数=浮点数#三种类型可以相互转换#函数:int(), fl

Python笔记_01列表 和元祖

Python笔记 第一章 列表和元祖 1.通用序列操作 所有序列都可以进行某些特定操作,包括:索引(indexing).分片(slicing).加(adding).乘(multiplying)以及检查某元素是否属于列表成员. 迭代:依次对序列中的每个元素重复执行某些操作. 序列的索引:通过元素在列表中的位置可以定位到该元素,这就是列表的索引,使用类似于list[0]对元素进行索引,索引0指向第一个元素.也可使用负数对元素进行索引,使用负数对元素索引时,列表中的最后一个元素由-1表示,例如list

C语言、数据结构笔记集合

链表中的“p->next” p->next到底是指p的下一个节点还是p的指针域呢?p是一个指针,那么p->next也应该是一个指针,即p->next应该是一个地址,因此p->next其实是p指向的节点的指针域(next域),所以p->next还是属于当前节点的,只不过它是下一个节点的地址罢了.所以如果函数返回“p->next”,那么函数的类型应为指针函数. 如何让VS2013进行C编程的时候使用基本库函数不会得到警告 把VS项目创建中的安全周期检查关闭就可以任意使