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

时间:2015-08-19 15:30:46

标签: python list

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

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

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

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

3 个答案:

答案 0 :(得分:4)

Python语法不支持您尝试应用它的条件。但是有几种选择:

你可以把条件放在循环中:

for item in lis:
    if item != 0:
        print item

您可以过滤列表:

for item in filter(lambda i: i!=0, lis):  # filter(None, lis) works too
    print item

或者使用列表推导(技术上是生成器表达式):

for item in (i for i in lis if i != 0):
    print item

或完全跳过循环:

print '\n'.join(str(i) for i in lis if i != 0)

答案 1 :(得分:0)

for l in lis:
    if l != 0:
        print l

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

答案 2 :(得分:0)

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

1)您可以使用正常循环

for i in lis:
    if i != 0:
        print i

2)列表理解

[i for i in lis if i!=0]

我仍然会说到Stackoverflow时,请考虑阅读教程,因为它是python中最基本的东西。