簡體   English   中英

如何使用列表推導獲得以下結果?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM