集合 set函数
集合里面不允许出现相同的数字或者字符,集合里面的元素都是独一无二的 ,集合也是出现花括号,但是没有冒号{},是和字典的区别
集合的基本特征
1 元素的互斥性
2 元素的无序性
3 元素的确定性
集合的元素不可重复,也就是说:
{1,2,3,3} 是不存在的 ,应该写为 {1,2,3}
集合里的元素需要是不可变类型,和字典中的键一样
所以集合可以理解为,只有键没有值的字典
集合的创建
1.直接使用大括号{}创建
集合元素是不可变类型
所以可以使用数值,字符串,元组
而不能使用列表,字典当做元素值
set1={1,2,3,[23]}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-0f95bb11aa02> in <module>()
----> 1 set1={1,2,3,[23]}
TypeError: unhashable type: 'list'
set1={1,2,3,(23)}
set2={1,2,3,{1:2,2:3}}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-15-bd5a449ceea5> in <module>()
----> 1 set2={1,2,3,{1:2,2:3}}
TypeError: unhashable type: 'dict'
set2={1,2,3,"python"}
如果你创建时在集合中写了重复的值,不会报错,但根据互异性,只会保存一个:
set3={1,2,3,4,5,2,3,3}
set3
{1, 2, 3, 4, 5}
创建空集合要使用set()
而不能使用{}
因为后者指的是创建空字典
dict1={}
type(dict1)
dict
set4=set()
type(set4)
set
2.使用列表或者元组创建
在set()里放入list或者tuple可以创建集合,该集合的元素就是列表或元组的元素
set5=set([1,2,3,45,5,5,5])
set5
{1, 2, 3, 5, 45}
3.使用字符串创建
得到的集合的元素是字符串的每个字符
set6=set("python")
set6
{'h', 'n', 'o', 'p', 't', 'y'}
集合的方法
就像列表、字典、元组一样,集合的操作也有很多方法
1.set.add( x )
向集合中添加元素x
list为append函数
set6.add(1)
set6
{1, 'h', 'n', 'o', 'p', 't', 'y'}
2.set.update(a_set)
使用集合a_set更新原集合,就是把括号里的集合的元素给set
list中为list.extend函数
set7={1,"2"}
set7.update(set6)
set7
{1, '2', 'h', 'n', 'o', 'p', 't', 'y'}
3.set.pop( )
删除并且返回集合中的任意元素
set7.pop()
1
set7
{'2', 'h', 'n', 'o', 'p', 't', 'y'}
4.set.remove(x)
删除集合中的元素x,如果x不存在就报错
set7.remove('2')
set7
{'h', 'n', 'o', 'p', 't', 'y'}
5.set.clear( )
清空集合中的所有元素
set7.clear()
set7
set()
集合转化
b="asalckasl;c,sl.,"
a='acjkaklsvsasacd'
sa=set(a) ##字符串转化为集合
sb=set(b) ##字符串转化为集合
&符号表示取交集
|符号表示并集
sa & sb #交集
{'a', 'c', 'k', 'l', 's'}
sa|sb #并集
{',', '.', ';', 'a', 'c', 'd', 'j', 'k', 'l', 's', 'v'}
% 求余数
// 求商
/ 直接除
网友评论