私はプレイヤーに帰属する選手のランキングのリストを持っています。これに加えて、私はランクのタプルのリストを持っている...私はやりたい何タプルの文字列とその置換えを使用してリスト内の文字列を置き換えるにはどうすればいいですか?
rank_database = [("Unprocessed Rank", "Processed Rank"), ("Unprocessed Rank 2", "Processed Rank 2")]
は、ランクデータベースから処理して、プレイヤーのランクのリストのすべての項目について、ある---のような見つけて交換する。
ので、交換前:交換後
player_ranks = ["Unprocessed Rank", "Unprocessed Rank 2"]
:
基本的にplayer_ranks = ["Processed Rank", "Processed Rank 2"]
、私はplayer_ranks
リストに検索と置換操作を実行するためにrank_database
を使用したいと思います。
提案された解決策
私の考えでは、("Unprocessed Rank", "Processed Rank")
がrank_database[i]
で発見タプルですので、私は、コードを実行すると
player_ranks = ["Unprocessed Rank", "Unprocessed Rank 2"]
rank_database = [("Unprocessed Rank", "Processed Rank"), ("Unprocessed Rank 2", "Processed Rank 2")]
for x in player_ranks:
for y in rank_database:
print("Changed "+x+" to")
if x == y[0]:
player_ranks[x].replace(rank_database[y]) #Line 5
print (x)
break
else:
continue
print("Finished!")
...次のようにstr.replace
方法でタプルを使用しようとしました私はこれがstr.replace
メソッドの置換文字列としてタプルを「注入」することを期待しています。
コードを実行するときに、5行目は
rank.replace(("Unprocessed Rank", "Processed Rank"))
...のようになります。これは、可能な解決策になるか、これは不可能であり、他のソリューションは、より適切であろうか?これは個人的なプロジェクトのためのものですので、私自身の解決策を働かせたいと思っています。
構造を説明するためのサンプルデータを表示できますか?処理された、未処理の、および参照されていない平均は何かが明確ではありません。あなたの背後に 'player_ranks'を変更する別のスレッドがないか、あなたの' __eq__'メソッドで本当に奇妙なことをやったことがない限り、 –
'player_ranksランクは_常にtrueになります。 –
私はあなたの質問が不明であることをAlex Hallに同意します。しかし、if文が常に真であることは明らかです。おそらく、else文がそれより上のif文と同じインデントレベルにあることを意図していること、else:continue構文がこのコードの文脈で重複していること、 + =有効なPython演算子ではありません。 –