【问题标题】:Beginner python set intersection error初学者python设置交集错误
【发布时间】:2012-03-05 13:58:58
【问题描述】:
rare = (["word1","word4","word5"])
freq = (["word1","word2","word3"])
unique = rare.intersection(freq)
print unique

error: AttributeError: 'list' object has no attribute 'intersection'

我没有正确创建集合吗?它们看起来像文档中的示例——但我似乎无法对它们使用正常的 set 方法。

如果这些是列表,创建集合的正确语法是什么?

【问题讨论】:

  • 为什么将非唯一元素称为唯一?

标签: python list set intersection


【解决方案1】:

这样您就不会创建集合,而只是创建常规列表。使用set函数:

rare = set(["word1","word4","word5"])
freq = set(["word1","word2","word3"])

也许您将集合与元组混淆了。使用括号之间的表达式创建元组,但您必须至少提供一个逗号:

("this", "is", "a", "tuple")
("anotherone",)

元组就像不可变的列表,但它们不是集合。

【讨论】:

  • 谢谢,这让我快疯了。
  • 很高兴它有帮助!如果您使用的是最近的 Python,另请参阅 Tavian Barnes 的回答,因为它更简洁。
【解决方案2】:

你想要这个:

rare = {"word1", "word4", "word5"}
freq = {"word1", "word2", "word3"}
unique = rare.intersection(freq)
print(unique)

请注意,集合文字的语法已被向后移植到 Python 2.7。

【讨论】:

  • @JoelCornett:为什么不呢?它编译得很好,执行得很好,它可以满足 OP 的要求。
  • @MichaelFoukarakis 我认为这取决于 Python 版本。例如,2.5 不接受,2.7 接受。
【解决方案3】:

在 Python 2.7+ 上,这是使用 set operators: 的交集语法

>>> rare = {"word1", "word4", "word5"}
>>> freq = {"word1", "word2", "word3"}
>>> rare & freq
{'word1'}

【讨论】:

    【解决方案4】:
    unique = set(rare).intersection(freq)
    print(unique)
    

    【讨论】:

    • 这是一种更简洁的方式。
    【解决方案5】:

    你可以这样做,我猜它更短:

    rare = (["word1","word4","word5"])
    freq = (["word1","word2","word3"])
    unique = set(rare).intersection(set(freq))
    print(unique)
    

    【讨论】:

      【解决方案6】:

      您的解决方案存在问题,因为 'rare' 和 'freq' 对象都是数组。它们必须转换为 set 数据类型。我使用 '&' 而不是 'intersection' 因为它看起来更整洁。

      unique = set(rare) & set(freq)
      print(unique)
      

      【讨论】:

        【解决方案7】:

        这对我有用

        unique = set(rare).intersection(freq)
        print(len(unique))
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-20
          • 2015-07-08
          • 2016-11-08
          • 2023-03-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多