복붙노트

[PYTHON] 사전 조회를 사용하여 목록의 요소를 대체하는 방법

PYTHON

사전 조회를 사용하여 목록의 요소를 대체하는 방법

이 목록이 주어진다.

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

사전 값에 따라 0 번째와 1 번째 값을 변경하고 싶습니다.

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. ==============================

    1.모든 값이 고유 한 경우 효율적인 솔루션을 얻으려면 먼저 사전을 뒤집어서 사용해야합니다.

    모든 값이 고유 한 경우 효율적인 솔루션을 얻으려면 먼저 사전을 뒤집어서 사용해야합니다.

    >>> subs = {
    ...         "Houston": "HOU", 
    ...         "L.A. Clippers": "LAC",
    ... 
    ...     }
    >>> rev_subs = { v:k for k,v in subs.iteritems()}
    >>> [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)
    
  2. ==============================

    2.값이 고유하면 다음과 같이 사전을 바꿀 수 있습니다.

    값이 고유하면 다음과 같이 사전을 바꿀 수 있습니다.

    subs = {v:k for k, v in subs.iteritems()}
    

    그런 다음 .get ()을 사용하여 키가 사전에없는 경우 두 번째 매개 변수와 함께 사전에서 값을 가져올 수 있습니다.

    print map(subs.get, my_lst, my_lst)
    

    인쇄물:

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

    3.dict를 뒤집은 다음 목록의 처음 두 요소에 조회를 적용하면됩니다.

    dict를 뒤집은 다음 목록의 처음 두 요소에 조회를 적용하면됩니다.

    subs = {
        "Houston": "HOU", 
        "L.A. Clippers": "LAC",
    
    }
    
    my_lst = ['LAC', 'HOU', '03/03 06:11 PM', '2.13', '1.80', '03/03 03:42 PM']
    my_lst[:2] = map(dict(zip(subs.values(), subs)).get, my_lst[:2])
    print my_lst
    
  4. from https://stackoverflow.com/questions/17295776/how-to-replace-elements-in-a-list-using-dictionary-lookup by cc-by-sa and MIT license