Python,集合,比较同一集中的两个元素



如果我有python集,我想找出集合中的一个元素是否是同一集中另一个元素的一部分,我该怎么做?

我尝试使用指示,但我遇到以下内容:

mySet = {"hello", "lo"}
mySet[1] in mySet[0] #I expect to return true
TypeError: 'set' object does not support indexing

我没有发现Python文档在这种情况下特别有用,因为我不知道如何比较集合中的元素。

顺便说一句,这是我有史以来的第一个stackoverflow问题。我试图遵守最佳实践。如果有一种方法可以改善问题,请告诉我。谢谢您的帮助!

集没有顺序。元素的索引实际上是元素本身。如果您确实需要集合(尽管我怀疑另一种数据结构可能是合适的),那么它们是可以的,您可以将每个元素与其他元素进行比较,但这不是很棒的性能,例如:

mySet = {"hello", "lo"}
for item in mySet:
    for other_item in mySet.difference([item]):
        if item in other_item:
            print item, other_item

'set'对象不支持索引。

清楚地表明您无法将集合的元素索引为myset [1]。

要访问集合的单个元素,您必须使用它,例如myset.pop()

看起来您实际上并不是要比较集合,而是集合的成员。问题是您无法抓住索引成员,因为set s是(以及此类未索引)元素的集合。

您正在尝试比较这两个元素(字符串)。因此,您想要的是listtuple

>>> myTuple = ('hello', 'lo')
>>> myTuple[1] in myTuple[0]
True

这检查字符串'lo'是否是'hello'的子字符串。此似乎是您在问题中要完成的工作。

相关内容

  • 没有找到相关文章

最新更新