【问题标题】:Python. How to remove zeroes from a list in Python [duplicate]Python。如何从Python中的列表中删除零[重复]
【发布时间】:2018-04-23 05:07:27
【问题描述】:
X = [0,5,0,0,3,1,15,0,12]

for value in range(0,len(X)):

    if X[value] <= 0:
        del X[value]
        print(X)
print(X)

我运行了代码,但随后我收到一条错误消息,指出列表超出了索引范围。 有人可以帮我解决这个错误

【问题讨论】:

  • [i for i in X if i != 0]
  • 你的数据结构搞混了——del X[value] 是你在访问字典时使用的,X 是一个列表
  • 谢谢。我最近开始编程,所以我不知道其中的区别。但感谢您的帮助。对此,我真的非常感激。我必须为周二的考试学习这些东西

标签: python


【解决方案1】:

尝试列表理解。

X = [0,5,0,0,3,1,15,0,12]
X = [i for i in X if i != 0]

【讨论】:

  • 非常感谢。那么它会立即打印它而没有零。我很快就会尝试代码。
【解决方案2】:
>>> X = [0,5,0,0,3,1,15,0,12]
>>> list(filter(lambda num: num != 0, X))
[5, 3, 1, 15, 12]

【讨论】:

  • 谢谢。我有一个问题。我已经在多个问题上看到了函数 lambda。它实际上是做什么的。谢谢
  • lambda 函数是一行匿名函数
猜你喜欢
  • 2021-01-24
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 2023-01-08
相关资源
最近更新 更多