集合

集合(set)

  1. 集合分为:可变集合(set),不可变集合(frozenset);可变集合不可以作为字典的键或值,因为是不可哈希的(则是因为可变的);不可变集合可以。

  2. 集合的创建:

(1).可变集合:

第一种方法:使用set进行创建

>>> a=set("hello")

>>> a

>>>{'o', 'h', 'l', 'e'} #集合会将重复的元素进行自动去重,只保留一个,此处的L则只保留一个,且元素都会打散,无序的。所以没有索引,若想拿到这个里面的元素,可以使用for循环获取

第二种方法:a={"hello","nihao"}

(2).不可变集合:

a=frozenset("hello")

 

  1. 集合具有去重作用,比如一个列表有重名的,只需保留不重名的,则可使用集合

a=["babu","baby","baby"]

a1=set(a)进行去重以后再转换为列表

a=list(a1)

  1. 集合

li=[[1,2],1,"hale"]

a=set(li) #TypeError: unhashable type: 'list',原因为【1,2】为可变的列表,是不可哈希的,所以会报错,若该列表为字典,数字,字符串,则不会报错

>>> dit={li:"1"}

TypeError: unhashable type: 'list'

则不可以作为字典的键

  1. 访问集合:

因为集合是无序的,且没有索引,则无法通过切片的方式获取元素,只能通过for循环遍历获取元素。

可以通过in not in来判断元素是否在集合内

 

6 add(),update():

add():向集合添加元素

>>li={1,2,3,"ha"}

>> li.add("nih")

{1,2,3,"ha","nih"}

add 将添加的元素整体添加到集合

>>li.update("uop")

>>li

{1,2,3,"ha","nih","u","o","p"}

update 将元素拆分进行添加到集合

诸如集合update(【列表】)

,会将列表里的元素添加进集合,每个元素作为整体添加进去,不会进行拆分

a={'p', 1, 2, 'u', 'o', 's', 'hah', 'hale'}

>>> a.update([5,"jkl"])

>>> a

{'p', 1, 2, 'u', 5, 'o', 's', 'hah', 'jkl', 'hale'}

  1. 集合删除

  1. remove()

    1. remove("hah") 则进行删除掉该元素

2.pop() 随机删除元素,并返回该元素

>>> a.pop()

'p'

7.操作

等于,不等于:

set("alex")==set("alexxexexexexe") 为ture

包含:<

set("alex")<set("alexfff") 为ture

set("alex")<set("alex") 为fasle

 

or取交集:将共同取出来,方法名称为intersection(); a.intersection(b)

set("alex") or set("xfff")

输出:{'x'}

使用“&”代替:即a&b

 

联合:用符号 |表示求得是并集,方法名用union(),如a.uinion(b)

使用“|”代替:即a|b

差集:其中一个有,另一个集合没有的元素,可以使用difference()

a=set("alex")

b=set("xfff")

a.diffrence(b) 则输出的{'e', 'l', 'a'}

使用“-”代替:即a-b

 

 

反向交集:将两个集合中不是共同的元素,取出来

symmetric_difference()

  1. a=set("alex")

b=set("xfff")

a.symmetric_difference(b)

使用“^”代替:即a^b

 

 

 

 

 

上一篇:python_hashlib_learning


下一篇:ON UPDATE CURRENT_TIMESTAMP请慎用