私はPythonを学んでいますが、コマンドまたはメソッドが「インプレースアルゴリズム」であるかどうかをどのように知ることができますか?
'big'入力を試し、コマンドでランタイムをチェックすることは十分な指標ですか?
たとえばlst
、100,000個の要素を含むリストがあるとします。次の2つのコマンドを確認したところ、両方とも「終了」しました:lst = lst[ : :-1]
とlst.reverse()
。それで、それは両方が整っていることを意味しますか?
インプレース操作は通常None
Pythonで返されるため、あなたの場合lst.reverse()
はNone
、リストも返して変更するインプレース操作です。Whilelst[::-1]
は、再割り当てした新しいリストを返しますlst
。
>>> lst = range(1000)
>>> id(lst)
154457996
>>> lst = lst[::-1]
>>> id(lst) #id changed.
160699852
>>> lst = range(1000)
>>> id(lst)
160699340
>>> lst.reverse()
>>> id(lst) #same id
160699340
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加