辞書検索を使用してリスト内の要素を置換する方法 質問する

辞書検索を使用してリスト内の要素を置換する方法 質問する

このリストを見ると

my_lst = ['LAC', 'HOU', '03/03 06:11 PM', '2.13', '1.80', '03/03 03:42 PM']

辞書の値に応じて、その値0thと値を変更します。1st

def translate(my_lst):
    subs = {
        "Houston": "HOU", 
        "L.A. Clippers": "LAC",

    }

リストは次のようになります:

['L.A. Clippers', 'Houston', '03/03 06:11 PM', '2.13', '1.80', '03/03 03:42 PM']

ベストアンサー1

すべての値が一意である場合は、効率的なソリューションを得るために、まず辞書を逆にする必要があります。

>>> subs = {
...         "Houston": "HOU", 
...         "L.A. Clippers": "LAC",
... 
...     }
>>> rev_subs = { v:k for k, v in subs.items()} # subs.iteritems() In Python 3
>>> [rev_subs.get(item, item)  for item in my_lst]
['L.A. Clippers', 'Houston', '03/03 06:11 PM', '2.13', '1.80', '03/03 03:42 PM']

選択したインデックスのみを更新しようとしている場合は、次を試してください。

indexes = [0, 1]
for ind in indexes:
    val =  my_lst[ind]
    my_lst[ind] = rev_subs.get(val, val)

おすすめ記事