[英]How to achieve the following result using List Comprehensions?
我有以下列表,由列表列表組成,我想接受它:
list = [[original1,type1,unknow],[original2,type2,general]]
並使用List Comprehensions生成以下結果,其目的是驗證最后一個元素是否未知,然后返回原始元素(如果未返回一般元素),為此我需要搜索兩個for嘗試:
所需的輸出:
newList = [origina1,general]
我嘗試過,但是我對理解表的語法感到困惑,我希望有人能夠支持我
newList =[ x if list[3] == 'unknow' else x == general for x in list]
我認為您的意思是如果最后一個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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.