集合

集合

集合是一个可变的数据类型,他是以{}形式存在的,空集合set()    #{}表示空字典但是它要求它里面的元素是不可变的。
集合是无序的,不重复的
1 # set1 = {1, 2, 3, 'abc', (1,2,3), True,[1,2,3] }
2 # print(set1)     #[1,2,3]列表是可变的,所以这个集合是错误的
View Code

 

1.去重
思考:怎样给如下列表去重?

l1 = [11, 11, 22, 22, 33, 33, 33, 44]

# l1 = [11, 11, 22, 22, 33, 33, 33, 44]
# l2=list(set(l1))
# # 因为集合是无序的,所以我为了好看,可以排序
# l2.sort()
# print(l2)

# 2.集合的增,删,查 没有改(因为是无序的,没有索引,无法改)

1)增:①add(无序)
# set1={1,3,'小灰狗'}
# set1.add('皮皮虾')
# print(set1)      #   {1, '小灰狗', 3, '皮皮虾'}
② update 迭代着添加(无序)       #注:update在两个字典间的用法:覆盖着添加
# set1={1,3,'小灰狗'}
# set1.update('abc')
# print(set1)   #{1, 3, 'b', 'a', '小灰狗', 'c'}
# set1.update([1,2,3,4])
# print(set1)     # {1, 2, '小灰狗', 3, 4}

# 2)删

①remove 按元素删除
# set1 = {1, 3, '小灰狗'}
# set1.remove(1)
# print(set1)   #  {'小灰狗', 3}
②pop 随机删除,有返回值
# set1 = {1, 3, '小灰狗'}
# print(set1.pop(),set1)     #  {'小灰狗', 3}
③clear  清空
# set1 = {1, 3, '小灰狗'}
# set1.clear()
# print(set1)    #  set()
 ④del  删除整体

3)查:for循环

#  for i in set1:
#      print(i)

# 2.关系测试  &  |  -  ^

# ①交集    &     set1 & set2     两者共有的
# ②反交集  ^     set1 ^ set2
# ③并集    |    set1 | set2
# ④差集    -     set1 - set2    前者独有的

# set1={1, 2, 3, 4, }
# set2={3, 4, 5, 6,}
# print(set1&set2,set1|set2,set1-set2,set1^set2) # {3, 4} {1, 2, 3, 4, 5, 6} {1, 2} {1, 2, 5, 6}

# ⑤子集
# ⑥超集
# set1 = {1, 2, 3}
# set2 = {1, 2, 3, 4, 5, 6}
#
# print(set1 < set2) # True set1 是set2的子集

# print(set2 > set1) # True set2 是set1的超集

# ⑦冻结 frozenset 冻结后就不能再做任何改变
# 创建一个冻结的集合:
# set1=frozenset({1,2,3,'gss'})
# set1.add('8')
# print(set1) # AttributeError: 'frozenset' object has no attribute 'add'
 

 

 

posted @ 2018-05-07 20:44  XXXXXXXXxxxyyy  阅读(590)  评论(0)    收藏  举报