初学python,今天晚上学习了set,做下set的总结,set的中文名也就是【集合】,set的总结分为两部分,第一部分是set的创建,第二部分是set的操作,也就是set的功能;set的特点是无序的,但是是会天然去重的;

第一部分:创建set

方法1:用大括号来创建set

#用大括号创建集合
s1 = {'123','abc'}
print(type(s1))
print(s1)

<type 'set'>
set(['123', 'abc'])

方法2:直接用set创建,但是这是创建了一个空的集合

创建一个空的集合

s2 = set()
print(type(s2))
print(s2)

<type 'set'>
set([])

方法3;可以把一个列表转换为集合

li =[11,22,33,44,33]
s3 = set(li)
print(type(s3))
print(s3)

<type 'set'>
set([33, 11, 44, 22])

第二部,set的操作功能

# add,给集合【set】添加一个元素,注意add一次只能添加一个元素
s1 = set()
s1.add(123)
print(s1)

结果

set([123])

#clear,清空一个集合【set】
s1.clear()
print(s1)

结果

set([123])
set([])

#difference,显示集合a存在,但是集合b不存在的元
a = {'a','b','c','d','e'}
b = {'a','b','c','d','f','g'}
c = a.difference(b)
print(c)

结果

set(['e'])

#symmetric_difference,显示集合a和集合b中的不同的元素

a = {'a','b','c','d','e'}
b = {'a','b','c','d','f','g'}
c = a.symmetric_difference(b)
print(c)

结果
set(['e', 'g', 'f'])

#difference_update,把集合a中存在,但是不在集合b中的元素更新到集合a中

a = {'a','b','c','d','e'}
b = {'a','b','c','d','f','g'}
a.difference_update(b)
print(a)

结果
set(['e'])

#discard移除元素,如果集合中存在该元素,则会移除,如果集合中不存在该元素,也不报错

a = {'a','b','c','d','e'}
a.discard('a')
print(a)
a.discard('aaa')
print(a)

结果
set(['c', 'b', 'e', 'd'])
set(['c', 'b', 'e', 'd'])

#remove,移除元素,如果不存在,则会报错

a = {'a','b','c','d','e'}
a.remove('e')
print(a)
a.remove('1')

结果
set(['a', 'c', 'b', 'd'])
File "E:/ѧϰ/python/day6/set2.py", line 43, in <module>
a.remove('1')
KeyError: '1'

#pop,移除元素,但是不能指定移除哪个元素,是随机的,移除的值我们可以用另外一个变量来接收

f = {'a','b','c','d'}
g = f.pop()
print(f)
print(g)

结果
set(['c', 'b', 'd'])
a

 

#intersection,或者集合a和集合b的交集,并赋值给另外一个集合c

a = {'11','22','33','44'}
b = {'aa','bb','cc','dd','ee','33'}
c = a.intersection(b)
print(c)

结果
set(['33'])

#intersection_update,指出集合a和集合b之间的交集,并更新集合a的元素为集合a和集合b的交集

a = {'11','22','33','44','dd'}
b = {'aa','bb','cc','dd','ee','33'}
a.intersection_update(b)
print(a)

结果
set(['33', 'dd'])

#isdisjoint,判断a、b两个集合是否有交集,如果没有则返回True,如果有交集,则返回False

a = {'11','22','33','44','dd'}
b = {'aa','bb','cc','dd','ee','33'}
print(a.isdisjoint(b))

结果
False

#issubset,判断b集合是否为a集合的子序列,也就是说a集合是否包含b集合,如果是则返回True,如果不是,则返回False

a = {'11','22','33','44','dd'}
b = {'aa','bb','cc','dd','ee','33'}
print(a.issubset(b))
#
#
b = {'11','22','33','44','dd'}
a = {'33'}
print(a.issubset(b))

结果
False
True

#union,取集合b和集合a的并集,并把并集赋值给另外一个集合

a = {'11','22','33','44','dd'}
b = {'aa','bb','cc','dd','ee','33'}
c = a.union(b)
print(c)

结果
set(['11', 'aa', 'ee', 'bb', '22', '33', '44', 'cc', 'dd'])

#update,可以和add对比,add只能一个一个添加,而update可以批量添加

a = {'1','2','3','4'}
a.update('a','b','c')
print(a)

结果
set(['a', 'c', 'b', '1', '3', '2', '4'])

a = {'1','2','3','4'}
li = 'cui'
a.update(li)
print(a)

结果
set(['c', 'i', '1', '3', '2', 'u', '4'])

python之集合【set】的更多相关文章

  1. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  2. Python的集合

    1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...

  3. Python 操作集合

    Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...

  4. Python中集合set()的使用及处理

    在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...

  5. Python:集合操作总结

    集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...

  6. python 的集合 set()操作

      Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素.     有以下运算:   1.创建一个set ()集合:   2.add:增加集合元素   3.clea ...

  7. python set集合(16)

    在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...

  8. python frozenset集合(17)

    在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...

  9. Python数据类型--集合(set)

    Python的集合是无序.可迭代的容器对象,所有元素放在一对大括号中{},元素之间使用逗号隔开,同一集合内的元素具有唯一性,不允许重复. 集合中只能包含数字.字符串.元组等不可变类型的数据,不能包含列 ...

  10. [python]set集合学习

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

随机推荐

  1. 原生java读取存储为xml格式的数据,并存储到java bean里

    一.举例读取的文件为:X-bond可交易债券信息_20180917.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  2. self, super理解

    self是方法参数列表中的第一个参数,是运行时决定的. super是编译器符号,是编译时决定的.super的含义为从父类开始寻找相应的方法,父类在编译的时候就已经决定了. 一个关键点:super并不代 ...

  3. Runloop原理

    简单的说,runloop是一个事件循环的机制,同时能够保活线程.iOS中每个线程都对应一个runloop,主线程的runloop默认开启,其他线程的runloop默认关闭,线程与runloop是一一对 ...

  4. delphi 新版内存表 FDMemTable

    c++builder XE 官方demo最全60多个 http://community.embarcadero.com/blogs?view=entry&id=8761 FireDAC.Com ...

  5. Linux:TCP状态/半关闭/2MSL/端口复用

    TCP状态 CLOSED:表示初始状态. LISTEN:该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接. SYN_SENT:这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行 ...

  6. UNITY 优化之带Animator的Go.SetActive耗时问题,在手机上,这个问题似乎并不存在,因为优化了后手机上运行帧率并未明显提升

    UNITY 优化之带Animator的Go.SetActive耗时问题,在手机上,这个问题似乎并不存在,因为优化了后手机上运行帧率并未明显提升 经确认,这个问题在手机上依然存在,不过占的比例非常小.因 ...

  7. 【381】python 获取列表中重复元素的索引值

    参考:获取python的list中含有重复值的index方法_python_脚本之家 核心思想:建立字典,遍历列表,把列表中每个元素和其索引添加到字典里面 cc = [1, 2, 3, 2, 4] f ...

  8. Linux各种类型压缩包解压缩方法

    Linux上经常需要处理各种类型压缩包的解包和打包处理.通常来说会处理最常见的.tar包和.tar.gz包就能解决大部分问题了,但是真碰到其他类型的压缩包还是需要知道如何进行解压缩.这里对Linux上 ...

  9. jq控制select值为某个时选中

    $("#selectche_type option").each(function(){//用id ,用class好像不得,不知道为何 alert(2) if($(this).va ...

  10. 导出pdf

    document.getElementById("exportSiteInfoTemp").onclick = function() { var thisMinheight=$(& ...