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

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

為什么下面的Python代碼只在for循環中刪除一次元素?

為什么下面的Python代碼只在for循環中刪除一次元素?

富國滬深 2023-09-26 14:11:49
所以我有以下代碼n = int(input())arr = map(int, input().split())numList = list(arr)topNum = max(numList)for i in numList:    if i == topNum:        del numList[numList.index(i)]print(numList)它需要以下輸入52 3 6 6 5這個想法是刪除所有出現的頂部數字,但我有一個錯誤,它只刪除頂部數字一次。我已經檢查過是否打印該數字,如果它等于頂部數字,并且在測試時打印了兩次,所以我知道它與 if 語句和 for 循環無關,所以它一定與我的方式有關刪除它?如果是這樣,為什么盡管處于 for 循環中,它只刪除一次。我知道它的意思是只刪除第一次出現的情況,但這就是為什么我有 for 循環。
查看完整描述

1 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

您不應該修改正在迭代的列表。


這是一種使用函數式編程方法來實現您正在尋找的目標的方法。與您的方法相同,您將輸入映射到整數,然后我們使用過濾器忽略輸入中等于 n 的任何數字。


n = int(input())

numbers = list(filter(lambda x: x != n, map(int, input().split())))

print(numbers)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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