【问题标题】:Cannot completely remove zero from the list of python [duplicate]无法从 python 列表中完全删除零 [重复]
【发布时间】:2021-01-24 18:25:21
【问题描述】:

我有两个列表

x=[0.0, -0.9000000000000199, 2.1499999999999773, 1.799999999999983, -1.5000000000000284, -2.3500000000000227, -3.05000000000004, 2.0999999999999943, 3.9999999999999716, 1.8499999999999943, -4.650000000000006, 11.349999999999994]
y=[-5.750000000000028, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

我使用下面的逻辑来完全删除零。但是 y 的零点并没有被完全删除。

for i in x:
    if i==0:
        x.remove(i)

for j in y:
    if j==0:
        y.remove(j)
        
print(x)
print(y)

我得到如下输出,即我的 y 列表中仍然有零。

[-0.9000000000000199, 2.1499999999999773, 1.799999999999983, -1.5000000000000284, -2.3500000000000227, -3.05000000000004, 2.0999999999999943, 3.9999999999999716, 1.8499999999999943, -4.650000000000006, 11.349999999999994]
[-5.750000000000028, 0.0, 0.0, 0.0, 0.0, 0.0]

【问题讨论】:

    标签: python arraylist


    【解决方案1】:

    您不应该在迭代列表时从列表中删除元素。相反,使用列表推导:

    x=[e for e in x if e]
    y=[e for e in y if e]
    

    【讨论】:

    • 是的,它有效。但是请提供一些解释,说明为什么在迭代列表时不从列表中删除元素。这样我才能接受你的回答。
    【解决方案2】:

    “remove”方法只删除第一次出现的提供值:

    def remove(self, *args, **kwargs): # real signature unknown
        """
        Remove first occurrence of value.
        
        Raises ValueError if the value is not present.
        """
        pass
    

    要从列表中删除所有值,可以使用以下小方法:

    def remove_all_values_from_list(l, val):
        for i in range(l.count(val)):
            l.remove(val)
    

    输出:

    [-0.9000000000000199, 2.1499999999999773, 1.799999999999983, -1.5000000000000284, -2.3500000000000227, -3.05000000000004, 2.0999999999999943, 3.9999999999999716, 1.8499999999999943, -4.650000000000006, 11.349999999999994]
    [-5.750000000000028]
    

    【讨论】:

      【解决方案3】:

      试试 y = [i for i in y if i != 0]

      【讨论】:

        猜你喜欢
        • 2014-03-10
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 2012-07-11
        • 2021-11-16
        • 1970-01-01
        • 2019-11-24
        • 1970-01-01
        相关资源
        最近更新 更多