์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_๋ณธ์บ ํ”„_data11๊ธฐ ๊น€์„ ์˜_TIL_Day 13

0๏ธโƒฃ 2026. 1. 9. 22:42

<์˜ค๋Š˜์˜ ํ•™์Šต>

  • ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ ์„ธ์…˜ 3ํšŒ์ฐจ
    • ๋ณต์Šต๋ฌธ์ œ ์ œ์ถœ
    • ์—ฐ์Šต๋ฌธ์ œ ์ œ์ถœ
  • SQL ์„ฑ์ทจ๋„ ํ‰๊ฐ€ ํ”ผ๋“œ๋ฐฑ ๋ฆฌ๋ทฐ

<ํ•™์Šต๋‚ด์šฉ ์ •๋ฆฌ>

ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ ์„ธ์…˜ 3ํšŒ์ฐจ

๐Ÿ”— ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ ์„ธ์…˜ 3ํšŒ์ฐจ ๊ฐ•์˜ ์ž๋ฃŒ

1. ๋ฆฌ์ŠคํŠธ

<์‹ค๋ฌด์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ๋Œ€ํ‘œ ํ•จ์ˆ˜>

  append  
  insert  
  count  
  sort  

โœ… ์‹ค์Šต ๋ฌธ์ œ 1 : ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ & ๋ฉ”์„œ๋“œ ์ฝœ๋ผ์ฃผ

<์ฒดํฌํฌ์ธํŠธ>
โ–ช๏ธŽ reverse() (* sort()๋„ ๋งˆ์ฐฌ๊ฐ€์ง€!)
  โš ๏ธ ๋’ค์ง‘์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ X / ์›๋ณธ ๋ฆฌ์ŠคํŠธ ์•ˆ์—์„œ๋งŒ ์ˆ˜์ •๋˜์–ด ์žˆ๋‹ค.
  sub_cities.reverse() ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— ๊ฐ’ ์ง€์ •๋„ ๋ถˆ๊ฐ€. # ์ถœ๋ ฅ: None
๋ฐฉ๋ฒ• 1) reverse๊ฐ€ ์ ์šฉ๋œ ์›๋ณธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— ์ €์žฅ
sub_cities.reverse() # sub_cities ๋ฆฌ์ŠคํŠธ ์•ˆ์—์„œ๋งŒ ๋ฐ”๋€ ์ƒํƒœ. ๊ฐ’ ๋ฐ˜ํ™˜ ์•ˆ ํ•จ.
reversed_cities = sub_cities #reverse ์ ์šฉ๋œ ์›๋ณธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์— ๋ถ€์—ฌ.
print(reversed_cities)โ€‹

 

๋ฐฉ๋ฒ• 2) ์Šฌ๋ผ์ด์‹ฑ์œผ๋กœ ์—ญ์ถœ๋ ฅ โญ๏ธ
- ์ฝ”๋“œ๊ฐ€ ํ•œ ์ค„๋กœ ๊ฐ„๋‹จ
- ์›๋ณธ ๋ฆฌ์ŠคํŠธ ๊ฐ’ ์œ ์ง€
reversed_cities = sub_cities[::-1]
print(reversed_cities)
cities = ["Seoul", "Busan", "Incheon", "Gwangju", "Daejeon"]

# TODO 1) ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ€์šด๋ฐ 3๊ฐœ ๋„์‹œ๋งŒ ์ž˜๋ผ sub_cities ์— ์ €์žฅ
sub_cities = cities[1:4]

# TODO 2) sub_cities ์˜ ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์–ด reversed_cities ์— ์ €์žฅ
# ์Šฌ๋ผ์ด์‹ฑ
reversed_cities = sub_cities[::-1]

# TODO 3) reversed_cities ์— "Ulsan" ์„ ๋งจ ๋’ค์— ์ถ”๊ฐ€
reversed_cities.append("Ulsan")

# TODO 4) ์ตœ์ข… ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅ
print(reversed_cities)

โœ… ์‹ค์Šต ๋ฌธ์ œ 3 : ๋ฆฌ์ŠคํŠธ์˜ ์ตœ๋Œ€/์ตœ์†Œ์™€ ํ‰๊ท  ๊ตฌํ•˜๊ธฐ

๋ฐฉ๋ฒ• 1) max, min ์‚ฌ์šฉ
nums = list(map(int, input("์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” (๊ณต๋ฐฑ ๊ตฌ๋ถ„): ").split()))

max_num = max(nums)
min_num = min(nums)
avg_num = sum(nums) / len(nums)

print(f"์ตœ๋Œ“๊ฐ’: {max_num}")
print(f"์ตœ์†Ÿ๊ฐ’: {min_num}")
print(f"ํ‰๊ท : {avg_num}")
๋ฐฉ๋ฒ• 2) sort() ์‚ฌ์šฉ
- sort(), reverxe() ํ•จ์ˆ˜๊ฐ€ ๊ฐ’ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ ์ฃผ์˜ํ•˜๊ธฐ!!
nums = list(map(int, input("์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” (๊ณต๋ฐฑ ๊ตฌ๋ถ„): ").split()))

nums.sort()

print(f"์ตœ๋Œ“๊ฐ’: {nums[0]}")
print(f"์ตœ์†Ÿ๊ฐ’: {nums[-1]}")
print(f"ํ‰๊ท : {sum(nums) / len(nums)}")

2. ํŠœํ”Œ

  • ์ˆœ์„œ ์žˆ์Œ / ์ค‘๋ณต ๊ฐ€๋Šฅ / ๋ณ€๊ฒฝ X
  • ํŒจํ‚น์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ
  • ์š”์†Œ ํ•˜๋‚˜๋ฅผ ํŠœํ”Œ๋กœ ์ƒ์„ฑ ์‹œ, ์‰ผํ‘œ(,) ํฌํ•จ๋˜์–ด์•ผ ํ•จ.
single_element = (5,)
print(single_element)        # ์ถœ๋ ฅ: (5,)
print(type(single_element))  # ์ถœ๋ ฅ: <class 'tuple'>

# ์‰ผํ‘œ๊ฐ€ ์—†์œผ๋ฉด ์ผ๋ฐ˜ ๊ฐ’์œผ๋กœ ์ธ์‹
not_a_tuple = (5)
print(type(not_a_tuple))  # ์ถœ๋ ฅ: <class 'int'>
  • ํŠœํ”Œ์˜ ๋ถˆํŽธ์„ฑ → ํŠœํ”Œ์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ์›๋ณธ ํŠœํ”Œ์€ ์œ ์ง€๋จ.
    but ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ€๋ณ€์„ฑ → ์ƒˆ๋กœ์šด ์š”์†Œ ์ถ”๊ฐ€ํ•˜๋ฉด ์›๋ณธ์ด ์ˆ˜์ •๋จ.

3. ๋”•์…”๋„ˆ๋ฆฌ

  • dict.get(key, default) : ๋”•์…”๋„ˆ๋ฆฌ ์š”์†Œ ์ ‘๊ทผ
    dict์— key๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹นํ•˜๋Š” value ๋ฐ˜ํ™˜ / key๊ฐ€ ์—†์œผ๋ช€ default ์ถœ๋ ฅ
    * ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ์—†์• ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
# `get()` ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์— ์ ‘๊ทผ (ํ‚ค๊ฐ€ ์—†์„ ๋•Œ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • ๊ฐ€๋Šฅ)
print(person.get('city'))       # ์ถœ๋ ฅ: New York
print(person.get('country'))    # ์ถœ๋ ฅ: None
print(person.get('country', 'USA'))  # ์ถœ๋ ฅ: USA

โœ… ์‹ค์Šต ๋ฌธ์ œ 1 : ์‹ฌํ”Œ ์—ฐ๋ฝ์ฒ˜ ๊ด€๋ฆฌ

์œผ์•‹์•„ใ… ํ—ท๊ฐˆ๋ฆฐ๋‹ค.

<์˜ค๋‹ต๋…ธํŠธ>
โ–ช๏ธŽ ๋”•์…”๋„ˆ๋ฆฌ์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ
   ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋‹ˆ๊นŒ, ๋ฐ”๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ๋จ.
   ์—†๋Š” key, value๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ๋ƒฅ ๋ฐ”๋กœ ์ถ”๊ฐ€ ๋จ.!! 
phonebook = {}

for put in range(3) :
  name = input("์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”: ")
  phone = input("์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: ")

  # ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ (์š”์†Œ์ถ”๊ฐ€ ๋ฐฉ์‹ ์‚ฌ์šฉ)
  phonebook[name] = phone #์ถ”๊ฐ€

for key, value in phonebook.items() :
  print(f"{key} : {value}")


delete = input("์‚ญ์ œํ•  ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”: ")
phonebook.pop(delete)

print(f"{delete} ์—ฐ๋ฝ์ฒ˜๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
print(f"์ตœ์ข… ์—ฐ๋ฝ์ฒ˜: {phonebook}")

โœ… ์‹ค์Šต ๋ฌธ์ œ 2 : ์‹œํ—˜ ์ ์ˆ˜ ๋”•์…”๋„ˆ๋ฆฌ ๋ถ„์„

scores = {"Alice":88,"Bob":95,"Charlie":70,"Dave":95,"Eve":62}

# ํ‰๊ท  ๊ตฌํ•˜๊ธฐ
# value๋งŒ ์‹น ๊ธ์–ด์™€์„œ # ํ•ฉ์น˜๊ธฐ
score_list = list(scores.values())
avg = sum(score_list) / len(score_list)
print(f"ํ‰๊ท  ์ ์ˆ˜: {avg}")

# ์ ์ˆ˜๋ฅผ ์ฐจ๋ก€๋กœ ๋ถˆ๋Ÿฌ์™€์„œ : for ๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ
# if๋กœ ์ ์ˆ˜ ๋ฒ”์œ„ ํŒ๋‹จ
for name, score in scores.items() :
  if score >= 70 :
    scores[name] = "Pass"
  else :
    scores[name] = "Fail"

print(scores)

 

ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ ์„ธ์…˜ 3ํšŒ์ฐจ - ์—ฐ์Šต๋ฌธ์ œ

# ๋ฌธ์ œ 6๋ฒˆ
๋‹ค์Œ ์ฝ”๋“œ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜์„ธ์š”.

a = [1, 2, 3]
b = a
b.append(4)
print(a)
print(b)
<์˜ค๋‹ต๋…ธํŠธ>
โ–ช๏ธŽ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ์ถœ๋ ฅ๊ฐ’:
   a = [1, 2, 3]
   b = [1, 2, 3, 4]
โ–ช๏ธŽ ์‹ค์ œ ์ถœ๋ ฅ๊ฐ’:
   a = [1, 2, 3, 4]
   b = [1, 2, 3, 4]

๐Ÿšซ ์˜คํ•ด ํฌ์ธํŠธ
- b = a โ–ถ๏ธŽ ๋ฆฌ์ŠคํŠธ a์™€ ๋ฆฌ์ŠคํŠธ b๊ฐ€ ๊ฐ๊ฐ ์กด์žฌํ•˜๊ฒŒ ๋๋‹ค๊ณ  ์ƒ๊ฐํ•จ.
- b.append(4) โ–ถ๏ธŽ ๋ฆฌ์ŠคํŠธ b์—๋งŒ 4๊ฐ€ ์ถ”๊ฐ€๋๋‹ค๊ณ  ํŒ๋‹จ.

๐Ÿ’ก a, b๋Š” ๊ฐ™์€ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ!


โ“a, b์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ฐ๊ฐ ์กด์žฌํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด? a์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ b๋กœ copy ํ•ด์™€์•ผ ํ•จ.
1๏ธโƒฃ ์Šฌ๋ผ์ด์‹ฑ ๋ฐฉ๋ฒ•
a = [1, 2, 3]
b = a[:]
b.append(4)

print(a)  # [1, 2, 3]
print(b)  # [1, 2, 3, 4]

2๏ธโƒฃ list()๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ
b = list(a)

3๏ธโƒฃ copy() ๋ฉ”์„œ๋“œ
b = a.copy()