我有一个字符串列表,如下所示:
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]
但它没有按预期工作。
编辑:
修复了返回元素而不是列表。
答案 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。
的第一个元素