【Python基础】11. 集合 set

2018-09-21  本文已影响0人  古月半半

集合的基本知识

集合的创建

set0 = set() #创建空集合
set1 = set([1,2,3,4,5])
set2 = {1,2,3,4}
print(set0,type(set0))
print(set1,type(set1))

上述代码运行结果:

set() <class 'set'>
{1, 2, 3, 4, 5} <class 'set'>
{1, 2, 3, 4} <class 'set'>

[注意:] 集合是内的元素是不能重复的, 在给集合变量赋值的时候,如有重复的元素,该集合在输出的时候,重复的元素会被自动筛除.不会报错.

set3 = {'红色','红色','黄色','黄色','蓝色','蓝色','黄色'}

运行结果:

{'蓝色', '红色', '黄色'} #重复元素在set中自动被过滤

[注意:] set('字符串')和set({"字符串"})或set(["字符串"])是完全不同的含义:

set1 = set("你好呀!") #会将字符串拆分输出
set2 = set({"你好呀":1})
set3 = set(['你好呀'])
print(set1,type(set1))
print(set2,type(set2))
print(set3,type(set3))

运行结果如下:

{'你', '!', '呀', '好'} <class 'set'>
{'你好呀'} <class 'set'>
{'你好呀'} <class 'set'>

访问集合里的值

- 集合和字典一样是无序的,所以不能通过下标的方式进行访问
- 只能通过成员操作符in 和not in判断某个元素是否在集合里
- 也可以通过for循环吧集合中的元素遍历出来

in, not in

in和not in,两个方法一样,这里以'in'为例:

# 注意对比set 和 set2
set1 = {'apple'}
print(set1,type(set1))
print("a" in set1)
print("apple" in set1)

set2 = set('apple')
print(set2,type(set2))
print("a" in set2)
print("apple" in set2)

上述代码运行结果如下:

{'apple'} <class 'set'>
False
True
{'a', 'e', 'p', 'l'} <class 'set'>
True
False

向集合set增加元素

set5 = {1,3,5,7}
print("原始set:",set5)
set5.add('abc') 
print("add元素后的set:",set5)

set6 = {1,3,5,7}
print("原始set:")
set6.update('abc')  #把插入的元素拆分,做为个体传入到集合中
print("update后的set:",set6)

上述代码运行后的结果:

原始set: {1, 3, 5, 7}
add元素后的set: {1, 3, 5, 7, 'abc'}

原始set: {1, 3, 5, 7}
update后的set: {1, 3, 5, 7, 'b', 'a', 'c'}

[注意:]
只能将不可变的值(例如一个字符串或一个元组)加入到集合中。如果试图将一个列表(list)添加到集合中,系统会返回类型错误「TyprError」。

移除集合中的元素

集合set的运算

Python 中常用的集合方法是执行标准的数学运算,例如:求并集、交集、差集以及对称差。下图显示了一些在集合 A 和集合 B 上进行的标准数学运算。每个韦恩(Venn)图中的红色部分是给定集合运算得到的结果。

这篇公众号文章有详细介绍:

一文带你了解 Python 集合与基本的集合运算
https://mp.weixin.qq.com/s?src=11&timestamp=1534593019&ver=1068&signature=ua9HxxtIdXZTnTfOFS*PMHhqpRrVc7UG2tYVwED7ganOwoobmMelycw7Tn3-NoNtpY-atmOmLbssfTrnzrjeWKR*50zksk2Jk5mDp0*YP3wIIVL1RPTKDwMSYkTBefXH&new=1

上一篇下一篇

猜你喜欢

热点阅读