Pythonにおけるlistのremoveメソッドのピット

3441 ワード

本文は私の個人ブログに先発しました.https://jlice.top/p/7o05h/.皆さん、見学へようこそ.
LeetCodeの非常に簡単なテーマfind-all-numbers-disappeared-in-an-arrayをしたとき、意外にも間違っていました.Debugによると、Pythonはリストから削除したTrueで1も削除した.この問題を説明するには、サンプルコードを次に示します.
>>> a = [1, 2, True]
>>> a.remove(True)
>>> a
[2, True]
>>> a.remove(True)
>>> a
[2]

Trueを除去すると,1も除去されたが,2は除去されなかったことが分かった.
>>> a = [True]
>>> a.remove(1)
>>> a
[]

リストの要素がTrueである場合、1を削除するとTrueも削除されます.
したがって,Trueと1は同等であることが分かる.似たような実験をすると、Falseと0は同じです.TrueとFalseでも算術演算が可能です.
>>> 1 == True
True
>>> 0 == False
True
>>> True + 1
2
>>> False + 1
1