首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印列表,同时排除特定的命名值。

打印列表,同时排除特定的命名值。
EN

Stack Overflow用户
提问于 2015-08-19 15:30:46
回答 3查看 3.2K关注 0票数 0

我正在寻找一种基本的方法来排除从列表中打印某一项(而不是删除/删除),如果该命名值=指定的值,例如=0

我以为这是一些基本的东西,但我得到了一个错误,我没有定义。

代码语言:javascript
复制
a = 2
b = 0
c = 4
d = 0
e = 6

lis = [a,b,c,d,e]

while i != 0 in range(lis):
  print (lis[i])

通缉结果:

2

4.

6

好像我错过了一些简单的东西?还是这不像我想象的那么简单?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-19 15:35:45

Python语法不支持要应用它的条件。不过,有几种选择:

您可以将条件放入循环中:

代码语言:javascript
复制
for item in lis:
    if item != 0:
        print item

您可以筛选列表:

代码语言:javascript
复制
for item in filter(lambda i: i!=0, lis):  # filter(None, lis) works too
    print item

或者使用列表理解(从技术上讲,这里是一个生成器表达式):

代码语言:javascript
复制
for item in (i for i in lis if i != 0):
    print item

或者完全跳过循环:

代码语言:javascript
复制
print '\n'.join(str(i) for i in lis if i != 0)
票数 4
EN

Stack Overflow用户

发布于 2015-08-19 15:33:22

代码语言:javascript
复制
for l in lis:
    if l != 0:
        print l

逐个迭代列表中的项。每次检查当前项l,看看它是否等于0。如果项目为非零,则打印该项目。

票数 0
EN

Stack Overflow用户

发布于 2015-08-19 15:37:04

以下是您可以使用的选项。

1)您可以使用普通循环

代码语言:javascript
复制
for i in lis:
    if i != 0:
        print i

2) 列表理解

代码语言:javascript
复制
[i for i in lis if i!=0]

我还是要说,在讨论Stackoverflow时,请考虑阅读教程,因为它是python中最基本的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32099836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档