Python 集合类型4

前面我们学习了集合的几种关系运算,交集、并集、差集、对称差集和父子集,我们都是用对应的符号来取的。

同时集合也有一些内置方法,可以实现取交集、并集、差集、对称差集和父子集。

首先来看取交集的内置方法。

hobbies1 = ['吃饭', '睡觉', '看书', '钢琴', '跳舞', '游泳']
hobbies2 = ['吃饭', '睡觉', '打游戏', '追剧', '健身']
print(hobbies1.intersection(hobbies2))

两种方法取的交集是一样的。

然后再看取并集。

hobbies1 = {'吃饭', '睡觉', '看书', '钢琴', '跳舞', '游泳'}
hobbies2 = {'吃饭', '睡觉', '打游戏', '追剧', '健身'}
print(hobbies1.union(hobbies2))

接着是取差集。

hobbies1 = {'吃饭', '睡觉', '看书', '钢琴', '跳舞', '游泳'}
hobbies2 = {'吃饭', '睡觉', '打游戏', '追剧', '健身'}
print(hobbies1.difference(hobbies2))
print(hobbies2.difference(hobbies1))

对称差集。

hobbies1 = {'吃饭', '睡觉', '看书', '钢琴', '跳舞', '游泳'}
hobbies2 = {'吃饭', '睡觉', '打游戏', '追剧', '健身'}
print(hobbies1.symmetric_difference(hobbies2))

父子集。

s1 = {1, 2, 3}
s2 = {1, 2}
print(s1.issuperset(s2))
print(s1.issubset(s2))

上面的我就不详细的展开讲了,这些内置功能还是用符号比较方便。

到这里我就把集合的关系运算讲完了,接下来我们学习集合的另外一种用途。

去重。

集合去重的话还没办法保证原来的顺序的。我先定义一个列表,然后转成集合。

l = ['a', 'b', 'c', 'a', 'd', 'e']
print(set(l))

打印结果出来了,我们看到打印出来的并没有保证我们原来的顺序。同样的代码我再运行一下。

结果又变了,每次顺序可能都不一样。

还有就是集合只是针对不可变类型,前面我们也说过了。

我再定义一个列表,如果我要对它进行去重的话,用集合就不行了,会直接报错。

info = [['张三', 18]
    , ['李四', 19]
    , ['王五', 17]
    , ['张三', 18]
    , ['李四', 19]]
set(info)

因为它里面嵌套的都是列表,而列表又都是可变类型,如果我们要对它进行去重的话也很简单,还是一个for循环就实现了。

info = [['张三', 18]
    , ['李四', 19]
    , ['王五', 17]
    , ['张三', 18]
    , ['李四', 19]]
new_info = []
for i in info:
    if i not in new_info:
        new_info.append(i)
print(new_info)

集合也可以用len来统计长度。

也可以用in和not in 来做成员运算。

还有for循环。

这几个功能对于学到现在的你来说太简单了,我就不做演示了。

未经允许不得转载:445IT之家 » Python 集合类型4

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏