python - keep" other" if条件下列表中的元素

时间:2015-09-22 13:42:51

标签: python list

我有一个字符串列表,如下所示:

L = ['aa','bb','cc']

我想在其元素上应用if条件来检查其中是否包含多个字符串,然后仅保留一个元素作为结果。我试图实现的伪代码是:

if 'aa' in L AND 'cc' in L:
    return the third element (i.e. 'bb')
else:
    return 'aa'

到目前为止,我一直在使用列表理解,如:

 return = ['aa' if elem != 'aa' and elem != 'cc' else elem for elem in L][0]

但它没有按预期工作。

编辑:

修复了返回元素而不是列表。

2 个答案:

答案 0 :(得分:2)

我不认为你可以用一个列表理解来做到这一点。怎么样:

L = ['aa','bb','cc']
if "aa" in L and "cc" in L:
    result = [item for item in L if item != "aa" and item != "cc"][0]
else:
    result = "aa"
return result

return [item for item in L if item != "aa" and item != "cc"][0] if "aa" in L and "cc" in L else "aa"如果你坚持在一行中这样做。

答案 1 :(得分:1)

您可以使用集合找到列表之间的差异:

l = ['aa','bb','cc']
k = ['aa','cc']

if len(list(set(l) - set(k))) == 1:
    return list(set(l) - set(k))
else:
    return l[0]

如果它们只返回一个元素,则返回l。

的第一个元素