接下来我们看元组怎么来做关系运算。
假设现在有两个人,和你的女朋友,你们两个人可能有相同的爱好,也有各自不同的爱好。
我现在定义两个列表来存你们的爱好,假设爱好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