我有以下列表,由列表列表组成,我想接受它:
list = [[original1,type1,unknow],[original2,type2,general]]
并使用List Comprehensions生成以下结果,其目的是验证最后一个元素是否为unknow,然后返回 原始元素,如果没有返回将军,因为我需要搜索可能有两个我尝试过:
期望的输出:
newList = [origina1,general]
我试过,但是我对comprenhension列表的sintaxys感到困惑,我希望有人能支持我
newList =[ x if list[3] == 'unknow' else x == general for x in list]
答案 0 :(得分:1)
我认为如果最后一个元素是unknow
,那么你的意思是获得第一个元素,如果不是,那么最后一个元素是:
In [3]: l = [['original1', 'type1', 'unknow'],['original2', 'type2', 'general']]
In [4]: [item[0] if item[-1] == 'unknow' else item[-1] for item in l]
Out[4]: ['original1', 'general']
或者,“解包”版本(如果子列表中的项目数已知且为3):
In [5]: [a if c == 'unknow' else c for a, _, c in l]
Out[5]: ['original1', 'general']
_
是一种命名throwaway variables.