python基础入门之集合
导语
- 我们说过,创建字典用大括号,不过集合也是大括号,这点我们要注意一下,一定要区分数据结构,字典是键值对成对出现,集合就不是了,说这句话的意思就是集合没有键值对!
集合
- 创建集合使? {} 或 set() , 但是如果要创建空集合只能使? set() ,因为 {} ?来创建空字典。PS:可以理解set在编程语言中的专业名字叫集合。
- 特点:
- 可以去掉重复数据;(自带去重功能)
- 数据是?序的,故不?持下标 。
s1 = {10, 20, 30, 40, 50}
print(s1)
# {40, 10, 50, 20, 30} PS:?序
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
# {40, 10, 50, 20, 30} PS:去重
s3 = set('abcdefg')
print(s3)
# {'g', 'a', 'b', 'c', 'f', 'e', 'd'} PS:?序
s4 = set()
print(type(s4))
# set PS:set方法创建空集合
s5 = {}
print(type(s5))
# dict PS:不能直接创建空集合
增
- add():添加数据,如果数据已存在则不做任何操作。
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)
# {100, 10, 20}
- update():追加的数据是序列,如果数据不是序列则报错。
s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
print(s1)
# {100, 10, 20, 200}
删
- remove():删除集合中的指定数据,如果数据不存在则报错。
s1 = {10, 20}
s1.remove(10)
# {20}
print(s1)
s1.remove(10)
print(s1)
# 报错
- discard():删除集合中的指定数据,如果数据不存在也不会报错。
s1 = {10, 20}
s1.discard(10)
# {20}
print(s1)
s1.discard(10)
print(s1)
# {20}
- pop():随机删除集合中的某个数据,并返回这个数据。
s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
# 40
print(s1)
# {10, 50, 20, 30}
查
- in:判断数据在集合序列
- not in:判断数据不在集合序列
- 返回值都是布尔类型
总结
- 数据序列就是字符串,列表,元组,字典,集合这几种,要注意可变和不可变类型,不过提一嘴,tuple():将某个序列转换成元组, list():将某个序列转换成列表,set():将某个序列转换成集合,python中还有很多内置方法,等详解方法的时候更能理解,有同学可能会觉得很神奇,其实你也可以写方法然后按照需求来达到你想要的目的,内置方法只是开发者觉得无聊,开发py的时候想,其他语言有的功能咱也得有,就算有也得用起来更方便更简洁,这个思想就是懒人开发,不想麻烦就得创造。
|