私は二つのリストグローバルとして1、および関数内のローカルとして1リスト内のPython一致する文字列とインクリメント値
List1 = [[['MP01'], 0], [['MP02'], 0], [['MP03'], 0], [['MP04'], 0], [['MP05'], 0], [['MP06'], 0], [['MP07'], 0], [['MP08'], 0], [['MP09'], 0], [['MP10'], 0], [['MP11'], 0], [['MP12'], 0], [['MP13'], 0], [['MP14'], 0], [['MP15'], 0], [['MP16'], 0], [['MP17'], 0], [['MP18'], 0], [['MP19'], 0], [['MP20'], 0], [['MP21'], 0], [['MP22'], 0], [['MP23'], 0], [['MP24'], 0], [['MP25'], 0], [['MP26'], 0], [['MP27'], 0], [['MP28'], 0], [['MP29'], 0], [['MP30'], 0], [['MP31'], 0], [['MP32'], 0]]
function():
List2 = [['MP18', 100], ['MP28', 50], ['MP20', 30], ['MP07', 30], ['MP12', 10], ['MP03', 10], ['MP30', 10], ['MP14', 10], ['MP15', 5], ['MP16', 5], ['MP13', 5], ['MP02', 5], ['MP26', 5], ['MP23', 5], ['MP22 ', 5], ['MP01', 5]]
final_list = [[[a], b+dict(List2).get(a, 0)] for [a], b in List1]
を持っている基本的には、「LIST2は」選手たちはのラウンドで達成したスコアを表し、ゲーム(MP18は100、MP28は50など)と "List1"は、各プレイヤーのためのゲームの数ラウンドのためのスコアを蓄積するために使用されます。
私がしたいことは、基本的に各プレイヤーのスコアを「List1」に追加することです。問題は、「final_list」が関数内にあるためです。関数が呼び出され、 List2 "、新しい値を" List1 "に追加すると、単純に上書きされます。例えば、最初のラウンドの後に「List1を」は「LIST2」からのプレーヤーのために更新された値を持つことになります。
['MP18', 100], ['MP28', 50] etc
だから、MP18は、100ポイントを持つことになりますし、MP28は、のを介して第2の実行時に、しかし50などを持っていますプログラム(第2ラウンド)「LIST2」は、例えば、各選手のための異なる値を有することになる。
[['MP18, 50], [MP28, 100] etc
しかし、「final_list」は関数内から作成されているため、スコアの最初のセットはによって上書きされている
二番目のものの代わりに二番目のものが最初のものに追加されていれば意味がありますか?[[MP28, 100], [MP18, 50]
としては、所望の結果に反対する::のようなので、「List1を」を介して、第2の実行になります
[[MP28, 150], [MP18, 150]]
うまくいけば、これは役に立つ説明をもう少しです:D
:[スロー最近のコメントに関しては
、あなたは機能の
final_list
外を作成するには、これを試すことができますPythonの "inner join"リストのコード](https://stackoverflow.com/questions/47267727/slow-code-in-inner-joins-lists-in-python)を参照してください。 'List2'をdictにして、O(1)の' List1'を更新し、dictから '' MP''値を探します。 –ようこそ。残念ながら、これはディスカッションフォーラムやチュートリアルではありません。時間をかけて[ask]とそのページの他のリンクを読んでください。 [誰かが私を助けることができますか? "実際の質問ではありません](https://meta.stackoverflow.com/q/284236/2823755) – wwii