检查另一个迭代中所有元素的存在而不使用python中的循环

时间:2015-11-13 16:46:53

标签: python loops attributes

我们说我有一个列表amino=['A', 'G', 'L']和一个字符串sequence='GIIKAKILMDAAALG'。现在,如果我知道如何使用循环,我会做这样的事情来检查amino列表中的一个元素是否存在于我的sequence中:

for el in amino:
  if el in sequence:
    print 'Amino acid %s is found in sequence'% el
    break

很好,但我们假设我不知道循环。我可以使用列表和字符串的某些属性来执行上述操作吗?

1 个答案:

答案 0 :(得分:2)

您可以将序列转换为集合,这样您就可以使用简单的集合操作来获得答案:

set(amino).isdisjoint(set(sequence))   # True if the sets have nothing in common
set(amino).intersection(set(sequence)) # a set of common elements

没有可见的循环,但显然设置操作可能会在引擎盖下使用它们。