rare = (["word1","word4","word5"])
freq = (["word1","word2","word3"])
unique = rare.intersection(freq)
print unique
错误: AttributeError: 'list'对象没有属性'intersection'
我没有正确创建集合吗?它们看起来和文档中的示例相似--但我似乎无法在它们上面使用普通集合方法。
如果这些是列表,创建集合的正确语法是什么?
rare = (["word1","word4","word5"])
freq = (["word1","word2","word3"])
unique = rare.intersection(freq)
print unique
错误: AttributeError: 'list'对象没有属性'intersection'
我没有正确创建集合吗?它们看起来和文档中的示例相似--但我似乎无法在它们上面使用普通集合方法。
如果这些是列表,创建集合的正确语法是什么?
这样你就不是在创建集合(set),而是在创建普通列表(list)。使用set
函数:
rare = set(["word1","word4","word5"])
freq = set(["word1","word2","word3"])
("this", "is", "a", "tuple")
("anotherone",)
Tuples(元组)就像不可变的列表,但它们不是集合。
在Python 2.7+中,这是使用set operators:进行交集的语法。
>>> rare = {"word1", "word4", "word5"}
>>> freq = {"word1", "word2", "word3"}
>>> rare & freq
{'word1'}
rare = {"word1", "word4", "word5"}
freq = {"word1", "word2", "word3"}
unique = rare.intersection(freq)
print(unique)
unique = set(rare).intersection(freq)
print(unique)
你可以像这样做,它更短,我想:
rare = (["word1","word4","word5"])
freq = (["word1","word2","word3"])
unique = set(rare).intersection(set(freq))
print(unique)
unique = set(rare) & set(freq)
print(unique)
这对我有效
unique = set(rare).intersection(freq)
print(len(unique))