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中
浙公网安备 33010602011771号