set()集合如何使用? 集合的交集/并集/补集/

 

>>> a={x for x in 'abkckldlk' if x not in 'adc'}  //求字符串中除去‘adc’字符的字符串,输出为set()类型
>>> a
{'l', 'k', 'b'}

 

>>> a=[x for x in 'dkjfl ss' if x not in 'sl']  //输出为list
>>> a
['d', 'k', 'j', 'f', ' ']

//集合中添加单个元素
>>> a.add('x')
>>> a
{'x', 'l', 'k', 'b'}

//集合中添加多个元素,或者添加其它数据类型。(用','隔开)
>>> a.update([1,2],{3,'o'})
>>> a
{1, 2, 3, 'b', 'l', 'x', 'k', 'o'}

//集合中,移除某个元素
>>> a.remove('b')
>>> a
{1, 2, 3, 'l', 'x', 'k', 'o'}

//移除一个没有的元素,让它不报错
>>> a.discard('z')
>>> a
{1, 2, 3, 'l', 'x', 'k', 'o'}
>>>

集合运算:

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b                              # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b                              # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

 

//面试题: 给定2个组合/列表A,B, 求出A中包含而B中不包含的元素,返回一个List

思路1:变成set类型,再求A-B的值:

#coding=utf-8
def fun(a,b):
a=set(a)
b=set(b)
c=set()
c = a-b #求list a中包含而b中不包含的元素组成的list
print(c)
c=list(c)
return c

if __name__ == '__main__':
c=[]
a=[1,2,4]
b=[2,4,6]
c =fun(a,b)
print(c)

 

思路2: for循环,遍历A中的元素,判断该元素不在B中,则c.append(i)到新的list中

posted @ 2021-05-08 10:02  会飞的pinkPig  阅读(352)  评论(0)    收藏  举报