码迷,mamicode.com
首页 > 其他好文 > 详细

10--最后一个数据类型集合

时间:2020-03-12 18:30:57      阅读:37      评论:0      收藏:0      [点我收藏+]

标签:for   values   print   数据类型   转换   move   局限   成员   span   

集合

  1、定义

    在{}内用,分隔开多个元素,必须满足以下三个条件

#     1、集合内的元素必须为不可变类型
#     2、集合内元素无序
#     3、集合内元素没有重复

    验证上述三个条件

s = {}  # 空的花括号默认定义的是空字典
s = {1,2,a,(1,4)}  # 底层是调用了set()功能
print(s)
# 定义空集合
s1 = set()


#     1、集合内的元素必须为不可变类型
# s2 = {[1,2,3],1}  # 不可哈希是可变类型
# print(s2)
#     2、集合内元素无序
s = {1,2,a,(1,4)}  # 底层是调用了set()功能
print(s)
#     3、集合内元素没有重复,可以进行去重
s = {1,1,1,1,1,2,2}
print(s)

  2、类型转换:相当于底层调用for循环,取出每一个值放在集合中

# 对字符串进行转换,会自动将字符串中重复的去掉
s = set(hellollllop)
print(s)

# 对列表进行转换
s = set([1,2,3,4,5,6])
# s = set([1,2,3,4,5,6,[1,2]])  这个就是错的
# print(s)

# 对字典进行转换
s = set({k1:12,k2:13}.items())
print(s)
s = set({k1:12,k2:13})
print(s)
s = set({k1:12,k2:13}.values())
print(s)

  3、内置方法

             3.1 关系运算

a = {1, 2, 3}
b = {2, 3, 4}
# 交集:求共同的值,两种方法
res = a & b
res1 = a.intersection(b)
print(res)
print(res1)

# 并集:两者所有的值,重复的去掉
res = a | b
res1 = a.union(b)
print(res)
print(res1)

# 差集:取a独有的值,a为被减
res = a - b
res1 = a.difference(b)
print(res)
print(res1)

# 对称差集:两个独有的值
res = a ^ b
res1.symmetric_difference(b)
print(res)
print(res1)

# 父子集:包含的关系,当两个集合相等时,互为父子集
s4 = {1,2,3}
s5 = {1,2}
res = s4.issubset(s5)
res1 = s4.issuperset(s5)
print(s4 > s5)

 

    3.2 去重操作

# 局限性
#   只能针对不可变类型去重

print(set([1,1,1,1,2,3]))
#   无法保证原来的顺序
# 针对可变类型去重,需要自己写代码
l=[
    {name:lili,age:18,sex:male},
    {name:jack,age:73,sex:male},
    {name:tom,age:20,sex:female},
    {name:lili,age:18,sex:male},
    {name:lili,age:18,sex:male},
]
new_l = []
for info in l:
    if info not in new_l:
        new_l.append(info)
        l = new_l
print(new_l)
print(l)

 

  3.3 len()  集合的长度

  3.4 成员运算in 和 not in

  3.5 for循环进行遍历

4、其他内置方法

  4、1 删除 

s = {1,2,3,4,5}
# 用来删除元素的,指定元素不存在不会报错,do nothing
s.discard(2)
print(s)
# 用来删除元素的,指定元素不存在报错
s.remove(2)
# 随机删除
res = s.pop()

 

   4、2更新列表

# 更新列表
s.update({3,6,9,2})
# 求差集,并把差集的值赋给该集合
s.difference_update({3,4,5})  #  s = s.difference({3,4,5})

  4.3 增加值 add

s.add(4)

  4.4 判断两个集合是否完全独立,没有相同部分  isdisjoint()

print(s.isdisjoint({1,2,3}))

 

10--最后一个数据类型集合

标签:for   values   print   数据类型   转换   move   局限   成员   span   

原文地址:https://www.cnblogs.com/Kathrine/p/12473873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!