首先,你沒有set
對象,你有list
對象:
>>> set1 = ['some','words','are','here']
>>> set2 = ['some','words','are','over','here','too']
>>> type(set1), type(set2)
(<class 'list'>, <class 'list'>)
>>>
Python支持設置文字看起來像花括號:
>>> set1 = {'some','words','are','here'}
>>> set2 = {'some','words','are','over','here','too'}
>>> type(set1), type(set2)
(<class 'set'>, <class 'set'>)
的Python set
對象會重載按位運算符來執行設置操作。你想在集合交集元素的數量,所以使用逐位和操作員:
>>> set1 & set2
{'are', 'here', 'words', 'some'}
>>> len(set1 & set2)
4
或者,你可以使用更多的面向對象的風格:
>>> set1.intersection(set2)
{'are', 'here', 'words', 'some'}
>>> len(set1.intersection(set2))
4
我喜歡運營商,個人的看法:
>>> set1 & set2 # intersection
{'are', 'here', 'words', 'some'}
>>> set1 | set2 # union
{'some', 'here', 'words', 'too', 'over', 'are'}
>>> set1 - set2 # difference
set()
>>> set2 - set1 # difference
{'too', 'over'}
>>> set2^set1 # symmetric difference
{'over', 'too'}
如果你有list
對象,只是轉換爲set
:
>>> l1 = ['some','words','are','here']
>>> l2 = ['some','words','are','over','here','too']
>>> set(l1).intersection(l2)
{'some', 'are', 'words', 'here'}
>>> len(set(l1).intersection(l2))
4
'print(len(set(set1).intersection(set(set2))))'你在找這個嗎? – arsho
你有列表,沒有設置。這些列表中的任何一個是否包含重複的字符串 –
是的!非常感謝。我試圖搜索這麼難,找不到任何東西 – fattmagan