私はリストリストをPythonの関数に渡すときに、リスト内の要素を「隠す」方法は?
myList = [a,b,c,d,e]
と機能
def doSomething(list):
#Does something to the list
を持っていると私は繰り返し、このように関数を呼び出したいとします
doSomething([b,c,d,e])
doSomething([a,c,d,e])
doSomething([a,b,d,e])
doSomething([a,b,c,e])
doSomething([a,b,c,d])
心に来る最初の事でしょうこのようなもの:
for x in range(0,len(myList)):
del myList[x]
doSomething(myList)
しかし、これは実際には機能しません。なぜなら、delを呼び出すたびに要素を実際に削除するからです。私は、関数を呼び出すたびに要素を「隠す」ようにしています。これを行う方法はありますか?
リストをコピーして削除しますか? –
@AndrasDeak私はそれが方法かもしれないと思ったが、大きなリストの場合、私が関数を呼び出すたびにリストをコピーしている。リストもまたコピーするには? –
大規模なリストの場合、はい、それは非効率的かもしれません。単純な(ネストされていない)リストのコピーは 'cpy = myList [:]'と同じくらい簡単です。あなたは、myList [:k] + myList [k + 1:] 'コーナーケースを見て、要素インデックス' k'を無視することができます。しかし、これもあなたのためのリストを作成します。 –