🐍 Python의 리슀트, νŠœν”Œ, λ”•μ…”λ„ˆλ¦¬ 정리

Heejun KimΒ·2024λ…„ 10μ›” 5일

python

λͺ©λ‘ 보기
2/2

Pythonμ—μ„œ κ°€μž₯ 자주 μ“°μ΄λŠ” 데이터 ꡬ쑰인 리슀트, νŠœν”Œ, λ”•μ…”λ„ˆλ¦¬λŠ” 각각 고유의 νŠΉμ„±κ³Ό μš©λ„λ₯Ό κ°€μ§€κ³  μžˆλŠ”λ° 자격증 κ³΅λΆ€ν•˜λ‹€κ°€ μ‘°κΈˆμ΄λΌλ„ ν—·κ°ˆλ¦΄ 것 κ°™μ•„ λ‹€μ‹œ 정리해 λ³΄μ•˜μŠ΅λ‹ˆλ‹€

1. 리슀트(List)

λ¦¬μŠ€νŠΈλŠ” λ³€κ²½ κ°€λŠ₯ν•œ(mutable) 데이터 ꡬ쑰둜, μˆœμ„œκ°€ μžˆλŠ” μš”μ†Œλ“€μ˜ λͺ¨μŒμž…λ‹ˆλ‹€.
λ¦¬μŠ€νŠΈλŠ” λ‹€μ–‘ν•œ νƒ€μž…μ˜ 데이터λ₯Ό 포함할 수 있고, μ€‘λ³΅λœ 값을 ν—ˆμš©ν•΄μš”.

리슀트 생성 python my_list = [1, 2, 3, 4, 5]

μ£Όμš” νŠΉμ§•

  • κ°€λ³€μ„±: 리슀트의 μš”μ†ŒλŠ” 자유둭게 λ³€κ²½ κ°€λŠ₯ν•˜λ‹€.
  • 쀑볡 ν—ˆμš©: λ™μΌν•œ 값이 μ—¬λŸ¬ 번 λ“€μ–΄κ°ˆ 수 μžˆλ‹€.
  • 인덱싱 및 μŠ¬λΌμ΄μ‹±: 리슀트의 μš”μ†Œμ— 인덱슀λ₯Ό μ‚¬μš©ν•΄ μ ‘κ·Όν•  수 있으며, μŠ¬λΌμ΄μ‹±λ„ κ°€λŠ₯ν•˜λ‹€

μ£Όμš” λ©”μ„œλ“œ

  • append(): 리슀트 끝에 μš”μ†Œ μΆ”κ°€
  • insert(): νŠΉμ • μœ„μΉ˜μ— μš”μ†Œ μ‚½μž…
  • remove(): νŠΉμ • μš”μ†Œ 제거
  • pop(): λ§ˆμ§€λ§‰ μš”μ†Œλ₯Ό μ œκ±°ν•˜κ³  λ°˜ν™˜
  • sort(): 리슀트 μ •λ ¬
  • reverse(): 리슀트λ₯Ό μ—­μˆœμœΌλ‘œ λ³€κ²½!

μ˜ˆμ‹œ

my_list = [3, 1, 4, 1, 5]
my_list.append(9) #κ²°κ³Ό [3, 1, 4, 1, 5, 9]
my_list.sort() #κ²°κ³Ό [1, 1, 3, 4, 5, 9]

2. νŠœν”Œ(Tuple)

νŠœν”Œμ€ λ³€κ²½ λΆˆκ°€λŠ₯ν•œ(immutable) 데이터 ꡬ쑰둜, λ¦¬μŠ€νŠΈμ™€ μœ μ‚¬ν•˜μ§€λ§Œ ν•œ 번 μƒμ„±λ˜λ©΄ 값을 λ°”κΏ€ 수 μ—†μŠ΅λ‹ˆλ‹€. 데이터 변경이 ν•„μš” μ—†κ±°λ‚˜, κ³ μ •λœ 데이터가 μžˆμ„ λ•Œ μ‚¬μš©ν•œλ‹€.

νŠœν”Œ 생성

my_tuple = (1, 2, 3)

μ£Όμš” νŠΉμ§•

  • λΆˆλ³€μ„±: νŠœν”Œμ˜ μš”μ†ŒλŠ” 생성 ν›„ λ³€κ²½ λΆˆκ°€
  • 쀑볡 ν—ˆμš©: 리슀트처럼 μ€‘λ³΅λœ 값을 κ°€μ§ˆ 수 있음
  • 인덱싱 및 μŠ¬λΌμ΄μ‹±: λ¦¬μŠ€νŠΈμ™€ λ™μΌν•˜κ²Œ 인덱슀둜 μ ‘κ·Ό κ°€λŠ₯함

μ˜ˆμ‹œ

my_tuple = (1, 2, 3) # my_tuple[0] = 10 # 였λ₯˜ λ°œμƒ! νŠœν”Œμ€ λΆˆλ³€μž„

3. λ”•μ…”λ„ˆλ¦¬(Dictionary)

λ”•μ…”λ„ˆλ¦¬λŠ” ν‚€-κ°’ 쌍(key-value pair)으둜 데이터λ₯Ό μ €μž₯ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. ν‚€λŠ” κ³ μœ ν•˜λ©°, 각 ν‚€λŠ” ν•˜λ‚˜μ˜ 값을 κ°€μ§„λ‹€.

λ”•μ…”λ„ˆλ¦¬ 생성

my_dict = {"name": "Alice", "age": 25, "city": "Seoul"}

μ£Όμš” νŠΉμ§•

  • ν‚€-κ°’ 쌍: 각 ν‚€λŠ” κ³ μœ ν•˜λ©° μ€‘λ³΅λ˜μ§€ μ•ŠμŒ.
  • λ³€κ²½ κ°€λŠ₯: μƒˆλ‘œμš΄ ν‚€-κ°’ μŒμ„ μΆ”κ°€ν•˜κ±°λ‚˜ κΈ°μ‘΄ 값을 μˆ˜μ • κ°€λŠ₯함.
  • μˆœμ„œ 보μž₯: Python 3.7λΆ€ν„° λ”•μ…”λ„ˆλ¦¬λŠ” μ‚½μž…λœ μˆœμ„œλ₯Ό μœ μ§€ν•¨

μ£Όμš” λ©”μ„œλ“œ

  • get(): ν‚€λ‘œ 값을 μ–»μŒ. ν‚€κ°€ 없을 경우 였λ₯˜ λŒ€μ‹  κΈ°λ³Έκ°’ λ°˜ν™˜ κ°€λŠ₯.
  • keys(): λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  ν‚€λ₯Ό λ°˜ν™˜.
  • values(): λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  값을 λ°˜ν™˜.
  • items(): λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€-κ°’ μŒμ„ λ°˜ν™˜.
  • update(): λ‹€λ₯Έ λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€-κ°’ μŒμ„ 병합함
  • pop(): νŠΉμ • ν‚€μ˜ 값을 μ œκ±°ν•˜κ³  λ°˜ν™˜ν•œλ‹€

μ˜ˆμ‹œ

my_dict = {"name": "Alice", "age": 25}
my_dict["city"] = "Seoul" # ν‚€-κ°’ 쌍 μΆ”κ°€
my_dict.pop("age") # age ν‚€-κ°’ μ‚­μ œ

4. 리슀트 vs νŠœν”Œ vs λ”•μ…”λ„ˆλ¦¬ 차이점

νŠΉμ§•λ¦¬μŠ€νŠΈ(List)νŠœν”Œ(Tuple)λ”•μ…”λ„ˆλ¦¬(Dictionary)
λ³€κ²½ κ°€λŠ₯ μ—¬λΆ€βœ… (κ°€λ³€)❌ (λΆˆλ³€)βœ… (κ°€λ³€)
데이터 μ ‘κ·ΌμΈλ±μŠ€μΈλ±μŠ€ν‚€
쀑볡 ν—ˆμš©βœ…βœ…βŒ (ν‚€λŠ” 쀑볡 λΆˆκ°€, 값은 κ°€λŠ₯)
μš©λ„μˆœμ„œκ°€ μžˆλŠ” λ°μ΄ν„°κ³ μ •λœ 데이터킀-κ°’ 쌍 데이터 μ €μž₯

μ΄λ ‡κ²Œ Python의 리슀트, νŠœν”Œ, λ”•μ…”λ„ˆλ¦¬λŠ” 각각의 μž₯단점과 μ“°μž„μƒˆκ°€ μžˆμ–΄ 상황에 맞게 μ„ νƒν•΄μ„œ μ‚¬μš©ν•˜λŠ”λ²•μ„ κΈΈλŸ¬μ•Όν•œλ‹€.

πŸ’‘ 정리

  • λ¦¬μŠ€νŠΈλŠ” μˆœμ„œμ™€ 쀑볡이 μ€‘μš”ν•  λ•Œ, 데이터λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μˆ˜μ •ν•΄μ•Ό ν•  λ•Œ μ‚¬μš©.
  • νŠœν”Œμ€ λ³€κ²½ λΆˆκ°€λŠ₯ν•œ 데이터가 ν•„μš”ν•˜κ±°λ‚˜ κ³ μ •λœ μ»¬λ ‰μ…˜μ„ λ§Œλ“€ λ•Œ 유용.
  • λ”•μ…”λ„ˆλ¦¬λŠ” ν‚€-κ°’ 쌍으둜 데이터λ₯Ό μ €μž₯ν•  λ•Œ κ°•λ ₯ν•œ ꡬ쑰이닀.

0개의 λŒ“κΈ€