前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中集合set的使用详解

Python中集合set的使用详解

作者头像
用户7886150
修改2021-01-26 10:29:10
6970
修改2021-01-26 10:29:10
举报
文章被收录于专栏:bit哲学院

参考链接: Python 集合set pop()

在python3中按数据类型的可变与不可变大致分为如下几种类型,前面已经介绍了另外几种了。今天讲讲set。 

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

1.set是什么?用来干什么? 

python中,用set来表示一个无序不重复元素的序列。set的只要作用就是用来给数据去重。  

可以使用大括号 { } 或者 set() 函数创建集合,但是注意如果创建一个空集合必须用 set() 而不是 { },因为{}是用来表示空字典类型的 

1.set的集合的创建与使用 

#1.用{}创建set集合

person ={"student","teacher","babe",123,321,123} #同样各种类型嵌套,可以赋值重复数据,但是存储会去重

print(len(person))  #存放了6个数据,长度显示是5,存储是自动去重.

print(person) #但是显示出来则是去重的

'''

5

{321, 'teacher', 'student', 'babe', 123}

'''

#空set集合用set()函数表示

person1 = set() #表示空set,不能用person1={}

print(len(person1))

print(person1)

'''

0

set()

'''

#3.用set()函数创建set集合

person2 = set(("hello","jerry",133,11,133,"jerru")) #只能传入一个参数,可以是list,tuple等 类型

print(len(person2))

print(person2)

'''

5

{133, 'jerry', 11, 'jerru', 'hello'}

'''

2.常见使用注意事项  

#1.set对字符串也会去重,因为字符串属于序列。

str1 = set("abcdefgabcdefghi")

str2 = set("abcdefgabcdefgh")

print(str1,str2)

print(str1 - str2) #-号可以求差集

print(str2-str1)  #空值

#print(str1+str2)  #set里不能使用+号

====================================================================

{'d', 'i', 'e', 'f', 'a', 'g', 'b', 'h', 'c'} {'d', 'e', 'f', 'a', 'g', 'b', 'h', 'c'}

{'i'}

set() 

2.set集合的增删改查操作 

#1.给set集合增加数据

person ={"student","teacher","babe",123,321,123}

person.add("student") #如果元素已经存在,则不报错,也不会添加,不会将字符串拆分成多个元素,去别update

print(person)

person.add((1,23,"hello")) #可以添加元组,但不能是list

print(person)

'''

{321, 'babe', 'teacher', 'student', 123}

{(1, 23, 'hello'), 321, 'babe', 'teacher', 'student', 123}

'''

person.update((1,3)) #可以使用update添加一些元组列表,字典等。但不能是字符串,否则会拆分

print(person)

person.update("abc")

print(person)  #会将字符串拆分成a,b,c三个元素

'''

{321, 1, 3, 'teacher', (1, 23, 'hello'), 'babe', 'student', 123}

{321, 1, 3, 'b', 'c', 'teacher', (1, 23, 'hello'), 'a', 'babe', 'student', 123}

'''

#2.从set里删除数据

person.remove("student")#按元素去删除

print(person)

#print("student")如果不存在 ,会报错。

'''

{321, 1, 3, 'c', 'b', (1, 23, 'hello'), 'teacher', 'babe', 'a', 123}

'''

person.discard("student")#功能和remove一样,好处是没有的话,不会报错

person.pop() #在list里默认删除最后一个,在set里随机删除一个。

print(person)

'''

{1, 3, (1, 23, 'hello'), 'teacher', 'b', 'a', 'babe', 123, 'c'}

'''

#3.更新set中某个元素,因为是无序的,所以不能用角标

#所以一般更新都是使用remove,然后在add

#4.查询是否存在,无法返回索引,使用in判断

if "teacher" in person:

    print("true")

else:

    print("不存在")

'''

true

'''

#5.终极大招:直接清空set

print(person)

person.clear()

print(person)

'''

set()

''' 

统一声明:关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈。关于转载博客,如有原创链接会声明;如找不到原创链接,在此声明如有侵权请联系删除哈。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档