接下來我們看元組怎么來做關系運算。
假設現(xiàn)在有兩個人,和你的女朋友,你們兩個人可能有相同的愛好,也有各自不同的愛好。
我現(xiàn)在定義兩個列表來存你們的愛好,假設愛好1是你女朋友的愛好,愛好2是你的。
hobbies1 = ['吃飯', '睡覺', '看書', '鋼琴', '跳舞', '游泳']
hobbies2 = ['吃飯', '睡覺', '打游戲', '追劇', '健身']
看出什么了嗎?這就是一個女神和一個屌絲的差別。 開個玩笑~!
現(xiàn)在我的需求是,你要用代碼找出這兩個人共同的愛好。當然我這里用的是列表來存,你可以用元組,字典都行。
現(xiàn)在我們要找出這兩個人的共同愛好,那怎么做呢?
是不是可以用for循環(huán)遍歷一個列表,然后依次判斷每一個值,是否存在于另一個列表里面?
直接試試看。
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循環(huán)這么做呢?應該可以猜到了,一定有更加簡單的方法來對比這種方法。
就是用集合的一個功能?,F(xiàn)在我把上面的兩個愛好用集合的方式,把這兩個人共同的愛好取出來,這叫取交集。
hobbies1 = {'吃飯', '睡覺', '看書', '鋼琴', '跳舞', '游泳'}
hobbies2 = {'吃飯', '睡覺', '打游戲', '追劇', '健身'}
res=hobbies1 & hobbies2
print(res)
第三行代碼意思就是,我要取的元素在右邊這個愛好里,也在右邊這個愛好里,然后會有一個運算結果。最后打印一下這個res。
運算結果和上面for循環(huán)一樣,只是for循環(huán)用了5行代碼,而取交集只用了2行代碼。
未經允許不得轉載:445IT之家 » Python 集合類型2