리스트로 딕셔너리 만들기
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
이번에는 안 썼지만 언젠가 나중에 쓸 일이 있을 것 같다.
.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 |