51学通信论坛2017新版

标题: 1.14 集合基础及操作 [打印本页]

作者: 爱卫生    时间: 2017-12-15 10:29
标题: 1.14 集合基础及操作
一:集合的定义和基本操作
集合是一个无序的,不重复的数据组合,它的主要作用如下:
集合用set来表示。
第一段代码:

  1. s = set([3, 5, 9, 10])  # 创建一个数值集合
  2. t = set("Hello")  # 创建一个唯一字符的集合
  3. print("s is :",s)
  4. print("t is :",t)
  5. a = t | s  # t 和 s的并集
  6. print("a is :",a)
  7. b = t & s  # t 和 s的交集
  8. print("b is :",b)
  9. c = t - s  # 求差集(项在t中,但不在s中)
  10. print("c is :",c)
  11. d = t ^ s  # 对称差集(项在t或s中,但不会同时出现在二者中)
  12. print("d is :",d)
复制代码
输出:
  1. s is : {9, 10, 3, 5}
  2. t is : {'l', 'e', 'H', 'o'}
  3. a is : {3, 'H', 'o', 5, 9, 10, 'l', 'e'}
  4. b is : set()
  5. c is : {'l', 'e', 'H', 'o'}
  6. d is : {3, 'H', 5, 'o', 9, 10, 'l', 'e'}
复制代码

第二段代码(有重复数字、且不是唯一字符)代码:
  1. s = set([3, 5, 9, 10,11,5,10])  # 创建一个数值集合
  2. t = set(["Hello","Beijing"])  
  3. print("s is :",s)
  4. print("t is :",t)
  5. a = t | s  # t 和 s的并集
  6. print("a is :",a)
  7. b = t & s  # t 和 s的交集
  8. print("b is :",b)
  9. c = t - s  # 求差集(项在t中,但不在s中)
  10. print("c is :",c)
  11. d = t ^ s  # 对称差集(项在t或s中,但不会同时出现在二者中)
  12. print("d is :",d)
复制代码
输出:
  1. s is : {11, 9, 10, 3, 5}
  2. t is : {'Hello', 'Beijing'}
  3. a is : {10, 3, 5, 'Beijing', 9, 'Hello', 11}
  4. b is : set()
  5. c is : {'Hello', 'Beijing'}
  6. d is : {3, 5, 9, 10, 11, 'Beijing', 'Hello'}
复制代码
第三段代码(都是数字的集合)
代码:
  1. s = set([3, 5, 9, 10,11,5,10])  # 创建一个数值集合
  2. t = set([4,5,6,7,8,9])
  3. print("s is :",s)
  4. print("t is :",t)
  5. a = t | s  # t 和 s的并集
  6. print("a is :",a)
  7. b = t & s  # t 和 s的交集
  8. print("b is :",b)
  9. c = t - s  # 求差集(项在t中,但不在s中)
  10. print("c is :",c)
  11. d = t ^ s  # 对称差集(项在t或s中,但不会同时出现在二者中)
  12. print("d is :",d)
复制代码
输出:
  1. s is : {11, 9, 10, 3, 5}
  2. t is : {4, 5, 6, 7, 8, 9}
  3. a is : {3, 4, 5, 6, 7, 8, 9, 10, 11}
  4. b is : {9, 5}
  5. c is : {8, 4, 6, 7}
  6. d is : {3, 4, 6, 7, 8, 10, 11}
复制代码


二:集合的高级操作
代码:

  1. s = set([3, 5, 9, 10,11,5,10])  # 创建一个数值集合
  2. print("s is:",s)
  3. s.add(8) # 在s中添加1项
  4. print("s is:",s)
  5. s.update([1,2,3])  # 在s中添加多项
  6. print("s is:",s)
  7. s.remove(10)    #有就删除,没有就报错
  8. print("s is:",s)
  9. s.discard(11)   #有就删除,没有也不会报错
  10. print("s is:",s)
  11. s.pop() #随机弹出一个,好像默认是弹出最左边那个
  12. print("s is:",s)
  13. print(len(s))  #set 的长度
  14. print(3 in s)  #测试 x 是否是 s 的成员
  15. print(18 in s)
  16. print(3 not in s) #测试 x 是否不是 s 的成员
  17. s1 = set([2,3,5])
  18. print(s1.issubset(s)) #测试是否s1中的每一个元素都在s中,s1 <= s
  19. print(s.issuperset(s1)) #测试是否s中的每一个元素都在s1中,s1 >= s
复制代码
结果:
  1. s is: {11, 9, 10, 3, 5}
  2. s is: {3, 5, 8, 9, 10, 11}
  3. s is: {1, 2, 3, 5, 8, 9, 10, 11}
  4. s is: {1, 2, 3, 5, 8, 9, 11}
  5. s is: {1, 2, 3, 5, 8, 9}
  6. s is: {2, 3, 5, 8, 9}
  7. 5
  8. True
  9. False
  10. False
  11. True
  12. True
复制代码





欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3