如果我有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是(以及此类未索引)元素的集合。
您正在尝试比较这两个元素(字符串)。因此,您想要的是list
或tuple
:
>>> myTuple = ('hello', 'lo')
>>> myTuple[1] in myTuple[0]
True
这检查字符串'lo'
是否是'hello'
的子字符串。此似乎是您在问题中要完成的工作。