在理解Python列表时,如何在条件语句中不执行任何操作?

在理解Python列表时,如何在条件语句中不执行任何操作?,python,python-3.x,filter,conditional-statements,list-comprehension,Python,Python 3.x,Filter,Conditional Statements,List Comprehension,事情是这样的: lst = [1, 2, 3] i = [x if x == 2 else "I don't need that!" for x in lst] print(i) 输出: ["I don't need this item!", 2, "I don't need this item!"] 正如您在输出中看到的,我有我不想要的第一个和最后一个项目 我尝试了各种方法,比如删除else语句(这是不可能的),用pass语句替换0(它也不起作用) 在列表理解时,是否有可能在列表中使用条件

事情是这样的:

lst = [1, 2, 3]
i = [x if x == 2 else "I don't need that!" for x in lst]
print(i)
输出:

["I don't need this item!", 2, "I don't need this item!"]
正如您在输出中看到的,我有我不想要的第一个和最后一个项目

我尝试了各种方法,比如删除
else
语句(这是不可能的),用
pass
语句替换
0
(它也不起作用)

列表
理解时,是否有可能在
列表
中使用条件获取所需的项目?或者它只能通过
过滤器
功能实现

需要的输出:

[2]
试试这个:

lst = [1, 2, 3]
i = [x for x in lst if x == 2]
print(i)
# [2]
lst=[1,2,3]
i=[x表示lst中的x,如果x==2]
印刷品(一)
输出:

["I don't need this item!", 2, "I don't need this item!"]
[2]
如果没有正确使用列表理解,则
if
语句应该位于
for
循环之后。有关详细信息,请参阅或

在问题改变之前,答案是:

lst=[1,2,3]
i=[x如果x==2,则为lst中的x,否则“我不需要此项!”]
印刷品(一)
输出:

["I don't need this item!", 2, "I don't need this item!"]
[“我不需要这个东西!”,2,“我不需要这个东西!”]

如果将
放在错误的位置,则说明您将
放在了错误的位置。试试这个:

lst = [1, 2, 3]
i = [x for x in lst if x == 2]
print(i)
# [2]

预期的输出是什么?只需删除
if
语句的
else
部分:
[x for x in lst if x==2]
@HarshaBiyani问题帖子已经更新。如果必须添加内容,可以尝试
通过
继续
您的“所需输出”就是您所说的您不想要的输出。。也许想看看为什么被否决?这是字面上相同的编辑版本的接受的答案,除了编辑不存在时,我写它。。。如果有什么不同的话,可以说我的答案启发了被接受的答案……这是正确的。Norok2在这里表明,在NOELSE的情况下,列表理解的格式有点不同——“if”位于末尾。