1 λΆ„ μ†Œμš”

파이썬 λ”•μ…”λ„ˆλ¦¬λž€?

κΈ°μ‘΄ λ¦¬μŠ€νŠΈλŠ” μ•„λž˜μ™€ κ°™λ‹€.

li = [1, 2, 3, 4, 5]


λ”•μ…”λ„ˆλ¦¬λŠ” key:value의 쌍으둜 μ΄λ£¨μ–΄μ Έμžˆλ‹€.
JSONν˜•μ‹κ³Ό λΉ„μŠ·ν•˜λ‹€κ³  μ΄ν•΄ν–ˆλ‹€.. -> 주관적

dic = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}


λ”•μ…”λ„ˆλ¦¬λŠ” λ¦¬μŠ€νŠΈμ™€ λ‹€λ₯΄κ²Œ μ€‘κ΄„ν˜Έ{}둜 λ¬Άμ–΄ μ‚¬μš©ν•œλ‹€.

ν‚€ 이름이 μ€‘λ³΅λ˜λ©΄?

λ”•μ…”λ„ˆλ¦¬μ—μ„œ ν‚€ 이름이 μ€‘λ³΅λ˜λ©΄ μ–΄λ–»κ²Œ 될까?

dic = {'a':1, 'a':2, 'c':3, 'd':4, 'e':5}
print(dic['a'])
print(dic)

μœ„μ™€ 같이 aκ°€ μ€‘λ³΅λœ μƒν™©μ—μ„œ a의 valueλ₯Ό 좜λ ₯ν•˜λ©΄ μ–΄λ–»κ²Œ 될까?

> 2
> {'a':2, 'c':3, 'd':4, 'e':5}

이 처럼 ν‚€κ°€ μ€‘λ³΅λ˜λ©΄ 뒀에 μžˆλŠ” κ°’μœΌλ‘œ λŒ€μ²΄λ˜κ³ , μ€‘λ³΅λœ ν‚€ 값은 μ‚­μ œλœλ‹€.

λ”•μ…”λ„ˆλ¦¬ ν‚€μ˜ μžλ£Œν˜•

λ”•μ…”λ„ˆλ¦¬μ—μ„œ ν‚€ 값에 올 수 μžˆλŠ” κ°’λ“€μ˜ μžλ£Œν˜•λ“€μ€ λ‹€μ–‘ν•˜λ‹€.

  1. λ¬Έμžμ—΄
  2. μ •μˆ˜
  3. μ‹€μˆ˜
  4. 뢈(boolean)
  5. μžλ£Œν˜•μ„ μ„žμ–΄μ„œ μ‚¬μš© κ°€λŠ₯

그러면 valueμ—λŠ”?
κ°’μ—λŠ” λ¦¬μŠ€νŠΈμ™€ λ”•μ…”λ„ˆλ¦¬λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μžλ£Œν˜•μ„ μ‚¬μš©ν•  수 μžˆλ‹€.
μ—¬κΈ°μ„œ ν‚€ 값에 λ”•μ…”λ„ˆλ¦¬λ₯Ό μ‚¬μš©ν•˜λŠ” 것을 보고 JSONκ³Ό λΉ„μŠ·ν•˜λ‹€κ³  μƒκ°ν–ˆμŒ

예제 - λ°±μ€€-18870(μ’Œν‘œ μ••μΆ•)

λ¦¬μŠ€νŠΈμ— 값듀을 μž…λ ₯λ°›κ³ , 각 μš”μ†Œλ³΄λ‹€ μž‘μ€ κ°’μ˜ 개수λ₯Ό 좜λ ₯ν•˜λŠ” μ˜ˆμ œκ°€ μ’Œν‘œ μ••μΆ• λ¬Έμ œμ΄λ‹€.
μ—¬κΈ°μ„œ λ”•μ…”λ„ˆλ¦¬λ₯Ό μ‚¬μš©ν•˜λŠ”λ°, λ”•μ…”λ„ˆλ¦¬λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ΅μˆ™μΉ˜ μ•Šμ•„ ꡬ글링을 ν•΄μ•Όλ§Œ ν–ˆλ‹€.

import sys
N = int(sys.stdin.readline())
arr = list(map(int,sys.stdin.readline().split()))
arr2 = []

# μ€‘λ³΅μ œκ±° & μ •λ ¬ -> 리슀트둜 λ³€ν™˜
arr2 = list(sorted(set(arr)))

dic = {arr2[i] : i for i in range(len(arr2))}

for i in arr:
    print(dic[i], end=' ')

arr을 sorted둜 μ •λ ¬ν•˜κ³ , set으둜 쀑볡 μš”μ†Œλ₯Ό μ œκ±°ν•œλ‹€.
λ”•μ…”λ„ˆλ¦¬λ₯Ό ν™œμš©ν•΄ arr2의 μš”μ†Œλ“€μ„ λΉ„κ΅ν•œλ‹€.
이 전에 이미 쀑볡이 μ œκ±°λ˜μ—ˆκ³  μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬λ˜μ—ˆμœΌλ‹ˆ, ν‚€:κ°’μ˜ ν˜•νƒœλ‘œ 데이터λ₯Ό μ €μž₯ν•΄μ£Όλ©΄ λœλ‹€.
arr2λŠ” μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬λ˜μ—ˆκ³ , arr2[0]의 경우 arr2[0]보닀 μž‘μ€ 값은 0개이고, i=0μ΄λ―€λ‘œ i와 arr2[0]보닀 μž‘μ€ κ°’μ˜ κ°œμˆ˜κ°€ μΌμΉ˜ν•œλ‹€.
같은 λ™μž‘μœΌλ‘œ 비ꡐ해보면 i의 κ°’κ³Ό 각 μš”μ†Œ λ³„λ‘œ 본인보닀 μž‘μ€ κ°’μ˜ κ°œμˆ˜μ™€ μΌμΉ˜ν•œλ‹€.

참고자료

λ°±μ€€-18870
https://eunhee-programming.tistory.com/116
https://dojang.io/mod/page/view.php?id=2213

νƒœκ·Έ: ,

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ:

λŒ“κΈ€λ‚¨κΈ°κΈ°