-2

次のようなリストがあるとします。

MyList = [1,2,3,4,5,"z","x","c","v","b"]

ここで、ユーザーは「5z1b3」と入力します。各 int/str をリスト内の場所にどのように置き換えますか。私はこのようなものを使用することを考えています:

for x in MyList.... if located in list, replace with letter/number with its location.

ただし、それを行う方法が完全にはわかりません。助けていただければ幸いです。

編集 ::::: これは私が取り組んでいるものであり、リストで int と str の両方を使用する必要があります。また、必要な出力について嘘をつきました。avarnert について言及していただきありがとうございます。出力の各文字/数字の間のコンマは、私にとってはうまくいくでしょう。それを行う方法はありますか?

4

2 に答える 2

3

リスト内包表記を使用します。

[MyList.index(c) for c in inputstring]

MyListこれは、エントリごとにスキャンする必要があります。文字から位置への索引付け辞書を使用することで、それをかなり最適化できます。これには、文字列のみを確実に含めることができるという追加の利点があります。

index = {str(c): i for i, c in enumerate(MyList)}
[index[c] for c in inputstring]

フォーマットされた文字列が必要な場合は、インデックスを文字列に変換し、最終出力を結合します。

index = {str(c): str(i) for i, c in enumerate(MyList)}
','.join([index[c] for c in inputstring])
于 2013-09-16T21:36:45.113 に答える