上一篇文章 python学习——【第六弹】中介绍了 python中的字典操作,这篇文章接着学习python中的可变序列 集合
1: 集合是python语言提供的内置数据结构,具有
无序性
(集合中的元素无法通过索引下标访问,并且每次输出时元素的排序顺序可能都不相同。),互异性
,确定性
。2 :与列表、字典一样都属于
可变类型的序列
;但集合中的元素是不能重复的,因此可以利用集合为一组数据去重。3: 集合是没有value的字典
1:可以直接使用花括号创建: set_name={11,22,‘hello’,‘world’}
2:使用内置函数set() 创建(set() 函数为 Python 的内置函数,其功能是将字符串、列表、元组、range 对象等可迭代对象转换成集合。)创建方式: set_name=set(iteration)
jihe={11,22,33,44}
print(jihe,type(jihe),id(jihe))
# {33, 11, 44, 22} 140157225363408
jihe2=set(('hello','world',11)) #注意是双括号
print(jihe2,type(jihe2),id(jihe2))
# {'hello', 11, 'world'} 140157225362928
set1 = set("hello,world")
set2 = set([1, 2, 3, 4, 5])
set3 = set((1, 2, 3, 4, 5))
set4 = set(range(1, 9))
print(set1) #{'o', 'd', 'e', 'r', ',', 'w', 'h', 'l'}
print(set2) #{1, 2, 3, 4, 5}
print(set3) #{1, 2, 3, 4, 5}
print(set4) #{1, 2, 3, 4, 5, 6, 7, 8}
字典转set集合,需要注意的是,只取了字典的key,相当于将字典中的dict.keys()列表转成set集合。
jihe4=set({'a':2,'b':3,'c':4})
print(jihe4)
# {'c', 'a', 'b'}
空集合的创建:
如果要创建空集合,只能使用 set() 函数实现。
因为直接使用一对 {},Python 解释器会将其视为一个空字典。
s=set()
print(s,type(s),id(s))
# set() 140549035954496
s1=set([])#列表
print(s1,type(s1),id(s1))
# set() 140549035954736
s2=set(())#元组
print(s2,type(s2),id(s2))
# set() 140549035954976
s3=set({})#字典
print(s3,type(s3),id(s3))
# t() 140549035955456
由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来,或者使用 in 关键字查询集合中是否存在指定值。
sets= {11,'c',1,(1,2,3),'hello'}
for setss in sets:
print(setss,end=' ')
#1 11 (1, 2, 3) c hello
删除集合元素
使用 remove() 方法,语法格式如下:set_name.remove(element)
set1 = {11, 'hello', 1, (1, 2, 3), 'world', 'aa'}
set1.remove(11)
print(set1)
# {1, 'hello', 'world', (1, 2, 3), 'aa'}
如果删除的元素不再集合内,则会抛出 KeyError 错误
也可以使用 discard() 方法,该方法和 remove() 方法的用法完全相同,唯一的区别就是,当删除集合中元素失败时,不会抛出任何错误,但会返回原集合。
使用pop()函数随机移除集合中的一个元素
x = {"apple", "banana", "cherry"}
set.pop(x)
print(x)
# {'apple', 'cherry'}
可以通过del()关键字删除整个集合对象
set1 = {11, 'hello', 1, (1, 2, 3), 'world', 'aa'}
print(set1)
del set1
print(set1)
# NameError: name 'set1' is not defined
可使用set类型提供的 add() 方法实现,add() 方法添加的元素,只能是数字、字符串、元组等不可变类型或者布尔类型,不能添加列表、字典、集合等可变的数据,否则Python解释器会抛出TypeError错误。如果该元素已存在,则 add() 方法就不会添加元素
set2= {1, 2, 3}
print('添加元素之前集合的信息:',set2,type(set2),id(set2))
# {1, 2, 3} 140033352959952
set2.add((1, 2))
print('添加元素后集合的信息:',set2,type(set2),id(set2))
# 添加元素后集合的信息: {(1, 2), 1, 2, 3} 140033352959952
使用update()函数向当前的集合中添加集合
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
x.update(y)
print(x)
# {'cherry', 'runoob', 'banana', 'apple', 'google'}
工欲善其事,必先利其器!
到此对于python中的序列就介绍完了,接下来还会持续更新python学习——【第N弹】
如有不足,感谢指正!