Python数据类型-集合

集合:是一个不重复的元素序列

1、定义:使用花括号或者使用函数Set

a={'gang','man','28'};

b=set(('Google', 'Runoob', 'Taobao'));

2、集合之间的运算

a={'gang','man','28','Google'};

b=set(('Google', 'Runoob', 'Taobao'));

# 这里所说的交集,并集是数学概念

print(a|b);     #取集合并集

print(a&b);     #取集合交集

print(a-b);      #集合a减去集合a,b的交集

print(a^b);        #a,b的并集减去a,b的交集

执行结果是:

{'Taobao', 'man', '28', 'gang', 'Runoob', 'Google'}

{'Google'}

{'man', '28', 'gang'}

{'man', 'Runoob', 'Taobao', '28', 'gang'}

 

3、集合自身运算

3.1 增加元素 add()

a={'gang','man','28','Google'};

b=set(('Google', 'Runoob', 'Taobao'));

a.add('taobao');

print(a);

执行结果是:{'Google', 'gang', '28', 'man', 'taobao'}

 

3.2 update() 集合更新,批量增加集合元素

a={'gang','man'};

a.update({'taobcu','nihao'});

print(a);

执行结果是: {'taobcu', 'nihao', 'man', 'gang'}

3.3 remove() 删除集合元素,如果待删除的元素不存在,将会抛出异常

a={'gang','man'};

a.update({'taobcu','nihao'});

a.remove('nihao');

print(a);

执行结果是: {'man', 'gang', 'taobcu'}

 

3.4 discard() 删除集合元素,与remove区别在与,当待删除的元素不存在,

discard不会抛出异常

3.5 pop() 删除集合元素,删除第一个元素

a={'gang','man','taobcu','nihao'};

print(a);

a.pop();

print(a);

执行结果是:

{'man', 'taobcu', 'gang', 'nihao'}

{'taobcu', 'gang', 'nihao'}

4、集合方法

4.1 返回集合长度 len()

a={'gang','man','taobcu','nihao'};

print(len(a));

执行结果是: 4

4.2 clear() 清空集合所有元素

a={'gang','man','taobcu','nihao'};

a.clear();

print(a);

执行结果是: set()

4.3 in 判断元素是否在集合内,in 不是方法

a={'gang','man','taobcu','nihao'};

if 'gang' in a:

    print('true')

else:

    print('false');

执行结果是: true

4.4 Copy() 复制集合

a={'gang','man','taobcu','nihao'};

b=a.copy();

print(b);

执行结果是: {'gang', 'man', 'nihao', 'taobcu'}

4.5 difference() 和difference_update()

假如有集合a和b,那么a. difference(b)表示集合a-a交b,返回结果是集合;

a. difference_update(b)表示集合a-a交b,返回结果是none,但是它改变了集合a

a={'gang','man','taobcu','nihao'};

b={'gang','czg'};

c=a.difference(b);

print(c);

a.difference_update(b);

print(a)

执行结果是: {'man', 'taobcu', 'nihao'}

{'nihao', 'man', 'taobcu'}

 

4.6 intersection() 返回集合的交集; intersection_update() 也是返回None,它会更新集合a
a={'gang','man','taobcu','nihao'};

b={'gang','czg'};

c=a.intersection(b);  --参数可以有多个集合

print(c);

a. intersection_update(b);

print(a);

执行结果是: {'gang'}  {'gang'}

 

4.7 isdisjoint() 判断2个集合是否有交集,有则返回true,否则返回false

a={'gang','man','taobcu','nihao'};

b={'gang','czg'};

if a.isdisjoint(b):

    print('true')

else:

    print('false');

 

执行结果是: true

 

4.8 判断子集 a.issubset(b) 判断a是否是b的子集
a={'gang'};
b={'gang','czg'};
if a.issubset(b):
    print('true')
else:
    print('false');
执行结果是: true

4.9 判断超集 a.issuperset(b) 判断a是否是b的超级/父集
a={'gang'};

b={'gang','czg'};

if a.issuperset(b):

    print('true')

else:

    print('false');
执行结果是:false
4.10 union() 返回2个集合的并集
a={'gang','test'};
b={'gang','czg'};
c=a.union(b);
print(c);
执行结果是: {'gang', 'czg', 'test'}
4.11 symmetric_difference()和symmetric_difference_update
a.symmetric_difference(b) 表示a并b减a和b的交集,并且返回该集合
a.symmetric_difference_update(b) 表示a=a并b减a和b的交集,它的返回值是none,但是它改变了a
a={'gang','test'};
b={'gang','czg'};
c=a.symmetric_difference(b);
print(a);
c=a.symmetric_difference_update(b);
print(c);
print(a);
执行结果是: 
{'test', 'gang'}
None
{'test', 'czg'}
 
 
 

 

 

 

 

你可能感兴趣的:(Python开发篇)