Python 為什麼下面這段程式只刪除1個0?

時間 2021-05-29 23:32:12

1樓:虛空混沌

Python用洛克的方法問題不大,其他語種,比如c#你可以從後向前迴圈

for( i = s.length - 1; i>=0; i-- )

以前常這麼玩,體會一下~

2樓:

之前在工作裡也遇到了這個問題,樓上各位都說的很不錯。補充一點,字典其實也有類似的問題。不同的是,對於字典的迭代似乎會在每一次迭代結束之後檢查字典是不是變化了,如果變化會報錯。

3樓:

@洛克 的解釋很正確,但是方法可以改進。

這其實更適合通過 Python 的 filter 來解決:

#!/usr/bin/env python3defcheck_number(x

):ifx==

0:return

False

else

:return

Trues=

[0,0

,5,3

]print

(filter

(check_number,s))

4樓:洛克

初始s[0] = 0, s[1] = 0, s[2] = 5, s[3] = 3

for執行第一次的時候,

x = s[0], 也就是 x = 0 然後將這個元素剔除,s變成了[0, 5, 3], 也就是 s[0] = 0, s[1] = 5, s[2] = 3

for 執行第二次的時候,

x = s[1], 也就是 x = 5

因為x不是0,s不變

造成出現你這個結果的原因是列表s在運算過程中發生了變化.

合理的方法是將不是0的的元素重新放到乙個新列表裡面print[x

forxins

ifx!=0]

為什麼會有程式設計師不喜歡 Python?

看心態和領域吧,把程式設計作為實現目的的工具來說,python一直都是個好工具。以前看到過一句話,在你的領域裡不管最好用的語言是什麼,python都是第二好用的。至於我自己嘛 pytorch都把py寫名字裡了我還有什麼辦法呢 收發室柳大爺 說說自己的 1,python2和python3的版本問題 2...

下面這段話有什麼問題?矯情嗎?

PENG 這世上有一種人,他們徘徊於黑暗與光明之間,他們游離在渾濁與清醒之間,恍然的這一生,都將不得其所 終卻這一世 也難訴平生,在這黑茫茫的一片中,又如何才能做到心燈長明,而哪些在懸崖邊上趕路的人,如果踏錯一步,都將粉身碎骨,永墜深淵. 我覺得還行。今天晚上聽了一首歌 世界上有三種人 醫生和病人 ...

為什麼多執行緒Python程式無法充分利用多個CPU核心帶來的優勢?

德雲社區 這是個基礎問題,不值一提,說不能充分利用多個CPU核心帶來的優勢,那只是網上說的 用用 數字 IDE 帶高速模式的小程式,感覺一下,是不是能充分利用多 CPU 核心 主要是 Python 想直接利用多 CPU 核心有點難度,特別是對於初學者 臉雲 其實看實現,CPython實現是有 GIL...