如何使用列表理解实现以下结果?

2024-10-01 09:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单,由清单组成,我想拿它:

list = [[original1,type1,unknow],[original2,type2,general]]

要使用列表理解生成以下结果,其思想是验证最后一个元素是否未知,然后返回 原始元素如果不返回将军,那么我需要搜索两个我尝试过的元素:

期望输出:

newList = [origina1,general]

我试过了,但是我对各种各样的清单感到困惑,我希望有人能支持我

newList =[ x if list[3] == 'unknow' else x == general for x in list]

Tags: 元素列表ifelselist思想general将军
1条回答
网友
1楼 · 发布于 2024-10-01 09:21:33

我想你的意思是如果最后一个元素是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.的规范方式

相关问题 更多 >