#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Payne Zheng

list_1 = [1, 2, 4, 5, 7, 9]
list_1 = set(list_1)
list_2 = set([2, 3, 4, 6, 8, 0]) # 创建一个数值集合

# 交集 (两个集合都有的)
print(list_1.intersection(list_2))
print(list_1 & list_2)
# --- 2 4

# 并集 (合并两个集合,并去重(重复的只留下一个)
print(list_1.union(list_2))
print(list_1 | list_2)
# --- 1 2 3 4 5 6 7 8 9 0

# 差集 (在一个集有,另一个集没有的)
print(list_1.difference(list_2))
print(list_1 - list_2)
# --- 1 5 7 9

# 对称差集 (合并两个集,并去掉两个集都有的(重复的都去掉)(注意与并集的区别)
# 字面理解 (两个相对的差集的并集就是对称差集) list_1 对 list_2 的差集 + list_2 对 list_1 的差集 = symmetric_difference
 print(list_1.symmetric_difference(list_2))
print(list_1 ^ list_2)
# --- 0 1 3 5 6 7 8 9

# 子集 (一个集合中的值是否在另一个集中都有)
list_3 = set([5, 7, 9])
print(list_3, list_1)
print(list_3.issubset(list_1)) # list_3 的值在 list_1 中都有,返回True

# 父集 (一个集合中是否包含另一个集合)
print(list_3, list_1)
print(list_1.issuperset(list_3)) # list_1 中包含有所有 list_3 中的值,返回True

# 没有交集(测试两个集合是否有交集,没有返回True
list_4 = set([11, 14, 15])
print(list_4, list_1)
print(list_4.isdisjoint(list_1))

# 基本操作
list_4.add('x') # add
list_4.update([22, 33, 44]) # add
list_4.remove(11) # del 要删除的值不存在时会报错
print(list_4.pop()) # 随机del 并返回del值
print(list_4.discard('x')) # 删除不存在的值不会报错,会返回None

print(len(list_4)) # 长度
if 'x' in list_4: # 判断值是否在集合中
    print('yes')
if 'y' not in list_4:
    print('yes')

print(list_4)

  

posted on 2018-04-28 11:03  PAYNE1Z  阅读(91)  评论(0)    收藏  举报