본문 바로가기

TIL

TIL 050423

리스트로 딕셔너리 만들기

players = ["mumu", "soe", "poe", "kai", "mine"]

players_dictionary = {player: i for i, player in enumerate(players)}

# {'mumu': 0, 'soe': 1, 'poe': 2, 'kai': 3, 'mine': 4}

rank_dictionary = {i: players[i] for i in range(len(players))}
# {0: 'mumu', 1: 'soe', 2: 'poe', 3: 'kai', 4: 'mine'}


리스트 요소 스왑

다른 언어에선 temp에 담아놓고 해야한다는데 파이썬에선 바로 된다.

original_index = players.index("kai")

players[original_index], players[original_index -1] = players[original_index-1], players[original_index]

# players: ["mumu", "soe", "kai", "poe", "mine"]


.index()로 짧게 코딩하는 것보다 딕셔너리를 만들어서 활용하는게 코드가 길어지더라도 속도는 더 빠르다.


https://whatisthenext.tistory.com/140

 

[파이썬] dict타입을 인덱스로 접근하기

dict를 인덱스로 접근하기 문제 items = {'cabbage' : 5000, 'Daikon' : 2000, 'Lettuce' : 3000} 다음과 같은 상품이 있다. 사용자의 입력 을 받아 해당 상품의 가격 을 출력하고자 한다. 해결방법 for index, (key, elem)

whatisthenext.tistory.com

이번에는 안 썼지만 언젠가 나중에 쓸 일이 있을 것 같다.


.key(), .values(), .items(): list()를 씌워서 print!

list(players_dictionary.keys())  # ['mumu', 'soe', 'poe', 'kai', 'mine']

list(players_dictionary.values())  # [0, 1, 2, 3, 4]

list(players_dictionary.items())  # [('mumu', 0), ('soe', 1), ('poe', 2), ('kai', 3), ('mine', 4)]

 

만약 list() 하지 않으면:

# dict_keys(['mumu', 'soe', 'poe', 'kai', 'mine'])

# dict_values([0, 1, 2, 3, 4])

# dict_items([('mumu', 0), ('soe', 1), ('poe', 2), ('kai', 3), ('mine', 4)])


그냥 딕셔너리에 바로 list를 씌워주면 key를 리스트에 담아준다.

list(players_dictionary)  # ['mumu', 'soe', 'poe', 'kai', 'mine']


딕셔너리의 key와 value를 스왑

players_dictionary # {'mumu': 0, 'soe': 1, 'poe': 2, 'kai': 3, 'mine': 4}

{v: k for k, v in players_dictionary.items()}  # {0: 'mumu', 1: 'soe', 2: 'poe', 3: 'kai', 4: 'mine'}

 

 

'TIL' 카테고리의 다른 글

TIL 050923  (0) 2023.05.09
TIL 050823  (0) 2023.05.09
TIL 050323  (0) 2023.05.03
TIL 050223  (0) 2023.05.02
TIL 050123  (0) 2023.05.01