Python 学习笔记【14】集合

  集合

  去重

  关系测试, 交集、差集、并集、反向(对称)差集

  集合是无序的

  把列表变为集合,去重

1 list_1 = [1, 4, 5, 7, 3, 6, 7, 9]
2 list_1 = set(list_1)  # 把列表变为集合,去重
3 
4 print(list_1, type(list_1))

  交集、并集、差集

1 list_1 = set([1, 4, 5, 5, 7, 9, 11, 13, 15, 15])
2 list_2 = set([2, 4, 5, 5, 8, 10, 12, 14])
3 
4 print(list_1, list_2)
5 print(list_1.intersection(list_2))  # 交集, 相交再去重
6 print(list_1.union(list_2))  # 并集, 相并再去重
7 print(list_1.difference(list_2))  # 差集, list_1有,list_2没有,再去重

  子集、父集

1 list_1 = set([1, 2, 3, 4, 5])
2 list_2 = set([1, 2])
3 
4 print(list_1.issubset(list_2))  # 是否为子集 False
5 print(list_1.issuperset(list_2))  # 是否为父集 True

   对称差集

1 list_1 = set([1, 2, 3, 4, 5])
2 list_2 = set([1, 2, 6, 7, 8])
3 
4 print(list_1.symmetric_difference(list_2))  # 对称差集,互相都没有的
5 print(list_1.difference(list_2))  # 差集,我有你没有的

   isdisjoint

1 list_1 = set([3, 4, 5])
2 list_2 = set([6, 7, 8])
3 
4 print(list_2.isdisjoint(list_1))  # 如果之间没有交集,返回为True

   用运算符表示关系测试

1 list_1 = set([1, 2, 3, 4, 5])
2 list_2 = set([1, 2, 6, 7, 8])
3 
4 print(list_1 & list_2)  # 交集 {1, 2}
5 print(list_1 | list_2)  # 并集 {1, 2, 3, 4, 5, 6, 7, 8}
6 print(list_1 - list_2)  # 差集 {3, 4, 5}
7 print(list_1 ^ list_2)  # 对称差集 {3, 4, 5, 6, 7, 8}

   集合的曾删改查及其他

 1 list_1 = set([1, 2, 3, 4, 5])
 2 
 3 list_1.add(999)  # 添加一项
 4 list_1.update([7777, 888, 666])  # 添加多项
 5 list_1.remove(3)  # 删除一项
 6 
 7 print(list_1)
 8 
 9 print(len(list_1))  # set的长度
10 print(888 in list_1)  # 测试888是否是list_1的成员
11 print(888 not in list_1)  # 测试888是否不是list_1的成员
12 print(list_1.pop())  # 随机删除一项,并返回其值
13 list_1.discard('ddd')  #remove删除不存在的项会报错,discard不会报错

 

posted @ 2016-11-01 12:03  A1_Code  阅读(170)  评论(0编辑  收藏  举报