亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從 python 列表中完全刪除零

無法從 python 列表中完全刪除零

絕地無雙 2023-10-26 10:24:27
我有兩個清單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]
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

迭代列表時不應從列表中刪除元素。相反,使用列表理解:

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


查看完整回答
反對 回復 2023-10-26
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

“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]


查看完整回答
反對 回復 2023-10-26
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

嘗試使用 y = [i for i in y if i != 0]



查看完整回答
反對 回復 2023-10-26
  • 3 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號