1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
十多年的惠山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整惠山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“惠山网站设计”,“惠山网站推广”以来,每个客户项目都认真落实执行。
2.基本功能是进行成员关系测试和删除重复元素
3.可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
4.因为set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。
1.创建集合
s=set()#创建一个空集合
s1={1,2,3,'a','python'}
2.删除重复的元素
集合是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
3.成员关系测试(检测某个成员是否在集合中)
案例:从终端输入5位数,以空格隔开,把这5位数存入列表中,剔除重复的数据,打印出来
#提示,列表转集合,集合转列表
a=input("请输入5位数字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.删除元素
3.删除整个集合
4.获取集合的长度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
区别:
add不能添加列表,update可以
update是将字符串中的拆分成字符进行追加
add,是当做整体追加在集合中
#案例:从终端输入一个数字就加入集合中,然后打印,又输入一个数字,然后打印,直到输入-1,退出输入
#然后打印最终的集合
ms=set()
while 1:
a=int(input("请输入一个数字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:从终端输入一个字符串就加入集合中,然后打印,又输入一个字符串,然后打印,直到输入q,退出输入
#然后打印最终的集合,字符串要分开存储,如输入hello,存储的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("请输入一个字符串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-删除元素及删除整个集合
格式:
集合.remove(元素) # 元素如果不存在会引发KeyError
集合.discard(元素) # 元素如果不存在不发生任何事
集合.pop() # 集合元素是字符串类型时删除随机元素。 集合元素是其他数据类型时,删除左边第一个元素
del 集合名 #删除整个集合
#案例:有集合{1,2,3,'hello','world'},删除全部字符串,然后最左边第一个元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-获取集合的长度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1个元素,其他的删除,假如元素个数不确定
s={1,2,3,4,'hello','a'}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集运算
集合的交集,并集,差集,对称差集的运算
{1,2,3,4}交集{4,5,6,7} --4 交集()
{1,2,3,4}并集{4,5,6,7} -1,2,3,4,5,6,7 并集(|)
{1,2,3,4}差集{4,5,6,7} -1,2,3 差集(-)
{1,2,3,4}对称差集{4,5,6,7}-1,2,3,5,6,7 4同时出现在两个集合中,不选它 对称差集(^)
#案例:使用花括号和set创建各一个集合,然后对集合进行交、并、差、对称差运算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(ss1)
print(s|s1)
print(s-s1)
print(s^s1)
目录
前几节我们已经介绍了Python 中的 列表list , 元组tuple 和 字典dict ,本节来介绍Python 中的最后一种数据结构—— 集合set 。
Python 中的 set 与 dict 很像,唯一的不同是, dict 中保存的是 键值对 ,而 set 中只保存 键 ,没有 值 。
Python 集合 有如下特点:
Python 集合的声明有两种方式:
创建 空集合 时,只能用 set() ,而不能用 {} :
创建 非空集合 时,可以用 set() ,也可以用 {} :
由于集合中的元素是唯一的,如果初始化时的 可迭代 数据中有重复的元素,则会自动删去重复的元素:
使用 len() 函数可以查看集合中元素的个数:
由于Python 集合中的元素的是无序的,所以可不能使用 下标 的方式来访问集合中的单个元素。
我们可以使用 for 循环 来遍历集合中的所有元素:
我们可以对两个集合进行如下运算:
交集与并集
in 运算
使用 dir(set) 查看集合支持的所有方法:
下面一一介绍这些 非魔法方法 ,共17 个。
1. add 方法
由于集合中的元素是唯一的,向集合中添加元素时有两种情况:
示例:
2. remove 方法
示例:
3. discard 方法
示例:
4. pop 方法
示例:
5. union 方法
示例:
6. update 方法
示例:
7. clear 方法
示例:
8. copy 方法
示例:
9. difference 方法
示例:
10. difference_update 方法
示例:
11. intersection 方法
示例:
12. intersection_update 方法
示例:
13. isdisjoint 方法
示例:
14. issubset 方法
示例:
15. issuperset 方法
示例:
16. symmetric_difference 方法
示例:
17. symmetric_difference_update 方法
示例:
(完。)
推荐阅读:
Python 简明教程 --- 8,Python 字符串函数
Python 简明教程 --- 9,Python 编码
Python 简明教程 ---10,Python 列表
Python 简明教程 ---11,Python 元组
Python 简明教程 ---12,Python 字典
变量名={元素,元素,,,}
nums={11,24,45,96,28}
nums.add(42)
print(nums)
nums={11,24,45,96,28}
nums2=["anfly","tom"]
nums.update(nums2)
print(nums)
1)nums={11,24,45,96,28} [没有该数字报错]
nums.remove(24)
print(nums)
2)nums={11,24,45,96,28} [随机删]
nums.pop()
print(nums)
3)nums={11,24,45,96,28} [没有该数字不会报错]
nums.discard(24)
print(nums)
交集:(存在相同元素)
set1={"anfly","tom","haha"}
set2={"anfly","susala"}
set3=set1set2
print(set3)
并集:(得到全部集合中全部的元素)
set1={1,2,3,4}
set2={3,4,5,6}
new_set=set1|set2
print(new_set)
运算符 (+ * in)
内置函数 (len max min del)
列:set1 = {"1","2","3"}
print(min(set1))
def函数名():
执行语句
函数名()
列:
defhello():
print("hello word")
hello()
2.函数参数:
def add2num():
a=11
b=22
c=a+b
print(c)
add2num()
3.位置参数:
def fun(a,b):
print("a:",a)
print("b:",b)
fun(2,3)
4.关键字参数:
def fun(a,b):
print("a:",a)
print("b:",b)
fun(a=2,b=3) [第一个‘a’可以直接写数字,也可以展示;第二个以及之后‘b’不能直接写数字,要写‘b=3’这种格式]
5.缺省参数
def printinfo(name,age=20):
print("name:",name)
print("age:",age)
printinfo(name="anfly") [展示都能展示出来]
6.不定长参数
1).*args[展示是元组]
defprintinfo(*args):
print("args:",args)
printinfo(100,200,300,400)
2)**args[展示是k.v格式]
def printinfo(**kwargs):
print("kwargs:",kwargs)
printinfo(a=100,b=200,c=300,d=400)
7.参数位置顺序
def sun(a,*args,b=22,**kwargs):
print("a:",a) ==10
print("args:",args) ==(200,300)
print("b:",b) ==2
print("kwargs:",kwargs) =={‘m’:3,'n':4}
sun(100,200,300,b=2,m=3,n=4)
8.函数返回值
def fan(a,b):
return a+b
print(fan(1,2)) #3
9.匿名函数(lambda函数也叫匿名函数,即函数没有具体的名称)
案例一:
sum=lambda a,b:a+b
print(sum(1,2)) #3
案例二:
sum=lambda a,b:100
print(sum(1,2)) #100
1.局部变量
def jv():
a=3
print(a)
def jv1():
a=99
print(a)
jv() #3
jv1() #99
2.全局变量
def jv():
print(a)
def jv1():
a=99
print(a)
jv() #全局变量
jv1() #99
3.局部变量升成全局变量
def jv():
a=3
global b
b="我也是全局变量"
print(a)
def jv1():
a=99
print(a)
print(b)
jv() #3
jv1() #99 #“我也是全局变量”
集合分为两种:可变集合(set)和不可变集合(frozenset),现在学习的是可变集合。
在Python中,有关于集合的操作主要有:集合的创建;集合的添加和删除;集合的交、并和差集运算。
今天先来学习如何创建集合。
集合的创建有两种方法:直接赋值法和set()函数法。
1、直接赋值法
和Python的其它序列一样,采用直接赋值法就可以直接创建一个集合,具体语法格式如下:
setname = {“element1”,“element2”,“element3”,……,“elementn”,}
从格式上看,和其它的序列创建方法基本一样,就是集合名setname直接使用赋值运算符等号“=”赋值,等号后面的元素内容使用英文半角的大括号“{ }”括起来,各个元素之间依然使用英文半角的逗号“,”分隔。
这里虽然和字典一样使用大括号“{ }”,但是只要记住字典的元素是由键值对组成的(详见前第62节内容),就完全可以区分所创建的是字典还是集合了。