Python 集合类型2

接下来我们看元组怎么来做关系运算。

假设现在有两个人,和你的女朋友,你们两个人可能有相同的爱好,也有各自不同的爱好。

我现在定义两个列表来存你们的爱好,假设爱好1是你女朋友的爱好,爱好2是你的。

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

看出什么了吗?这就是一个女神和一个屌丝的差别。 开个玩笑~!

现在我的需求是,你要用代码找出这两个人共同的爱好。当然我这里用的是列表来存,你可以用元组,字典都行。

现在我们要找出这两个人的共同爱好,那怎么做呢?

是不是可以用for循环遍历一个列表,然后依次判断每一个值,是否存在于另一个列表里面?

直接试试看。

for i in hobbies 1:

这行代码就拿到了hobbies1里的每一个值了。然后就可以做判断了。

for i in hobbies 1:
    if i in hobbies 2:

然后我在前面定义一个空列表。然后把两个人共同的爱好添加进去。最后打印这个both_like。

both_like = []
for i in hobbies1:
    if i in hobbies2:
        both_like.append(i)
print(both_like)

这样就是嫌我们的需求了。

为什么要用列表和for循环这么做呢?应该可以猜到了,一定有更加简单的方法来对比这种方法。

就是用集合的一个功能。现在我把上面的两个爱好用集合的方式,把这两个人共同的爱好取出来,这叫取交集。

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

第三行代码意思就是,我要取的元素在右边这个爱好里,也在右边这个爱好里,然后会有一个运算结果。最后打印一下这个res。

运算结果和上面for循环一样,只是for循环用了5行代码,而取交集只用了2行代码。

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

赞 (0) 打赏

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

支付宝扫一扫打赏

微信扫一扫打赏