python 정리 - 7

donghaniΒ·2023λ…„ 10μ›” 15일

πŸ“ŒνŠœν”Œμ΄λž€

νŠœν”Œμ€ λ¦¬μŠ€νŠΈμ™€ λ™μΌν•œ ν˜•νƒœλ‘œ, λ¦¬μŠ€νŠΈμ™€μ˜ 곡톡점과 차이점이 μžˆλ‹€.
차이점뢀터 μ •λ¦¬ν•˜λ©΄,
차이점 : νŠœν”Œμ€ 인덱슀 μ•ˆμ˜ 변경이 λΆˆκ°€λŠ₯ν•˜λ‹€.
μ†Œκ΄„ν˜Έ()λ₯Ό μ΄μš©ν•œλ‹€.

fruits = ('apple','banana','grape)
#생성

νŠœν”Œμ€ κ΄„ν˜Έ 없이 생성해도 μžλ™μœΌλ‘œ νŠœν”Œμ„ μƒμ„±ν•œλ‹€.

νŠœν”Œμ— μ£Όμ˜ν•  점은 μš”μ†Œκ°€ ν•˜λ‚˜ 뿐이면 μš”μ†Œμ˜ 끝에 μ‰Όν‘œλ₯Ό λΆ™μ–΄μ€˜μ•Ό ν•œλ‹€.
νŠœν”Œμ€ 읽기만 κ°€λŠ₯ν•˜λ‹€. -> 인덱슀의 μ ‘κ·Όλ§Œ κ°€λŠ₯ν•˜κ³  변경이 μ•ˆλœλ‹€.

곡톡점 :
곡백 생성, 인덱슀λ₯Ό μ‚¬μš©ν•΄ μš”μ†Œμ— μ ‘κ·Ό

νŠœν”Œκ³Ό 리슀트의 μ „ν™˜
μƒμ„±μž ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€ν™˜ κ°€λŠ₯
객체가 생성될 λ•Œ μžλ™μœΌλ‘œ μ‹€ν–‰ -> μƒμ„±μž ν•¨μˆ˜
νŠœν”Œκ³Ό 리슀트의 κ°€μž₯ μ‰¬μš΄ 차이점은 [] -> 리슀트 () -> νŠœν”Œμ΄λΌλŠ” 것이닀.

mylist = [1,2,3,4]
mytuple = tuple(mylist)
#이러면 mytuple은 같은 인덱슀의 같은 값이닀.
#κ·ΈλŸ¬λ‚˜ μžλ£Œκ΅¬μ‘°κ°€ λ‹€λ₯΄λ‹€.

νŠœν”Œμ˜ μ€‘μš”ν•œ 점 : ν•œλ²ˆ μƒμ„±λ˜λ©΄ μš”μ†Œμ˜ μΆ”κ°€ 및 μ‚­μ œκ°€ λΆˆκ°€
+= μ—°μ‚°μžλ₯Ό μ΄μš©ν•΄ λ‹€λ₯Έ νŠœν”Œμ„ μΆ”κ°€ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€
λ§Œμ•½ νŠœν”Œμ˜ 이름이 κ°™μœΌλ©΄ μƒˆλ‘œμš΄ νŠœν”Œμ΄ μƒμ„±λ˜μ–΄ λ”ν•΄μ§€λŠ” 것이고 λ°˜ν™˜λ˜λŠ” 것이라고 보면 λœλ‹€.

νŠœν”Œ νŒ¨ν‚Ήκ³Ό μ–ΈνŒ¨ν‚Ή
νŒ¨ν‚Ή : μ—¬λŸ¬ 개의 ν•­λͺ©μ„ νŠœν”Œλ‘œ 생성
μ–ΈνŒ¨ν‚Ή : νŠœν”Œμ— μ €μž₯된 데이터λ₯Ό κ°œλ³„λ³€μˆ˜λ‘œ ν’€μ–΄μ„œ μ €μž₯
μ–ΈνŒ¨ν‚Ήμ„ ν™œμš©ν•΄ 데이터 μˆœμ„œ λ³€κ²½ 및 2κ°œμ΄μƒμ˜ ν•¨μˆ˜ κ²°κ³Όκ°’ λ°˜ν™˜λ„ κ°€λŠ₯ν•˜λ‹€.

enumerate() : 리슀트 λ˜λŠ” νŠœν”Œμ— λŒ€ν•΄ 각 μš”μ†Œ 별(인덱슀, κ°’) ν˜•νƒœμ˜ νŠœν”Œ λ°˜ν™˜

νŠœν”Œμ„ μ‚¬μš©ν•˜λŠ” 이유 -> νŠœν”Œμ„ ν†΅ν•œ 반볡이 더 λΉ λ₯΄λ‹€ -> 객체 변경이 λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—
λ”•μ…”λ„ˆλ§ ν‚€λ‘œ μ‚¬μš©ν•œλ‹€.


πŸ“Œμ„ΈνŠΈ(set)

μ…‹, μ„ΈνŠΈλŠ” μˆ˜ν•™μ—μ„œ λ°°μ› λ˜ 집합이닀.
μ„ΈνŠΈλŠ” νŠΉμ • μˆœμ„œκ°€ μ•„λ‹Œ μœ„μΉ˜λ³„λ‘œ μ•‘μ„ΈμŠ€, μˆœμ„œ μœ μ§€μ˜ ν•„μš”κ°€ μ—†λ‹€,
μˆœμ„œκ°€ 없기에 쀑볡항λͺ©μ€ μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.
μ„ΈνŠΈλŠ” {} μ€‘κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•œλ‹€.

idx = {1,2,3}
values = set() #곡백 μ„ΈνŠΈ 생성

λ¦¬μŠ€νŠΈμ— set() ν•¨μˆ˜λ₯Ό μ μš©ν•˜λ©΄ μ–΄λ–»κ²Œ 될까?
-> 쀑볡이 제거 λœλ‹€.
-> 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
-> μ—¬κΈ°μ„œμ˜ 쀑볡은 리슀트 μ•ˆμ— 같은 κ°’

set μ—°μ‚°λ“€

list1 = [1,2,3,4,5]
list2 = [3,4,5,6,7]
set(list1)&set(list2) #파이썬 ꡐ집합 κ΅¬ν•˜κΈ° (μ€‘λ³΅λ˜λŠ” λΆ€λΆ„)
set(list1)|set(list2) #파이썬 ν•©μ§‘ν•© κ΅¬ν•˜κΈ°
set(list1)-set(list2)#파이썬 μ°¨μ§‘ν•© κ΅¬ν•˜κΈ°
#λ˜λŠ” ꡐ집합 set3 = set1.union(set2)
#λ˜λŠ” ν•©μ§‘ν•© set3 = set1.intersection(set2)
#λ˜λŠ” μ°¨μ§‘ν•© set3 = set1.difference(set2)

#λΆ€λΆ„ μ§‘ν•© μ—°μ‚° < λ˜λŠ” issubset()
a = {'apple','banana','grape'}
b = {'apple','banana','grape','kiwi'}

if a < b:
	print("λΆ€λΆ„μ§‘ν•©")
#λ˜λŠ” a.issubset(b)

파이썬 λ‚΄μž₯ν•¨μˆ˜ 쀑 any()와 all()이 μžˆλ‹€. λ‘˜μ€ μ•„νλ¨ΌνŠΈλ‘œ iterableν•œ 객체λ₯Ό λ°›λŠ”λ° 이 객체λ₯Ό λŒλ©΄μ„œ 쑰건을 검사해 닡을 True/False의 닡을 λ°˜ν™˜ν•œλ‹€.

any() : ν•˜λ‚˜λΌλ„ True인게 있으면 True
all() : λͺ¨λ‘ Trueμ—¬μ•Ό True λ°˜ν™˜
enumerate(),len(),max(),min(),sorted(),sum()
λ©”μ†Œλ“œ μ‚¬μš© κ°€λŠ₯
in을 μ‚¬μš©ν•΄ for문을 돌릴 수 있음 -> μˆœμ„œλŠ” 의미 μ—†λ‹€.
μˆœμ„œ ν•„μš”μ‹œ sorted()

μ„ΈνŠΈμ— μš”μ†Œ μΆ”κ°€
add() -> 단일 ν•­λͺ©
update() -> μ—¬λŸ¬ ν•­λͺ© μΆ”κ°€

μ„ΈνŠΈμ— μš”μ†Œ μ‚­μ œ
remove() -> μ‚­μ œν•˜λŠ” μš”μ†Œκ°€ μ—†μœΌλ©΄ μ˜ˆμ™Έ λ°œμƒ
discard() -> μ‚­μ œν•˜λŠ” μš”μ†Œκ°€ 없어도 μ˜ˆμ™Έ λ°œμƒ x
clear() -> λͺ¨λ“  μš”μ†Œ μ‚­μ œ

μ„ΈνŠΈ 함좕 μ—°μ‚°

alist = [1,2,3,4,5,6,7]
result = { x for x in alist if x%2==0}
#리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜μ„ μ‚¬μš©ν•΄μ„œ νŠœν”Œμ„ λ‹΄κΈ° !

πŸ“Œλ”•μ…”λ„ˆλ¦¬

λ”•μ…”λ„ˆλ¦¬λŠ” 말 κ·ΈλŒ€λ‘œ 사전
λ‹€μˆ˜μ˜ 값을 μ €μž₯ν•˜λŠ” 자료 ꡬ쑰
ν‚€λ₯Ό 톡해 값에 μ ‘κ·Ό
key : value ꡬ쑰 -> μˆœμ„œκ°€ μ—†λ‹€. c++의 λ§΅κ³Ό μœ μ‚¬

λ”•μ…”λ„ˆλ¦¬μ˜ 생성
ν‚€:κ°’ 의 ꡬ쑰 킀와 κ°’ 사이 (:) 콜둠
ν‚€λŠ” λΆˆλ³€μ˜ 객체, 유일 : νŠœν”Œ 숫자 λ¬Έμžμ—΄λ“±

dic1 = {"korea" : "seoul","usa":"washington","uk" : "london"}
dic2 = {}

print(dic1["uk"]) #uk에 value 좜λ ₯
print(dic1.get("france", "ν•΄λ‹Ή ν‚€κ°€ μ—†μŠ΅λ‹ˆλ‹€."))
#get에 ν•΄λ‹Ή ν‚€κ°€ 없을 경우 None λ°˜ν™˜ λ˜λŠ” λ‘λ²ˆμ§Έ 인수 λ°˜ν™˜

#ν•­λͺ© μΆ”κ°€
dic1['france'] = 'paris'
#전체 ν•­λͺ© μΆ”κ°€
dic1.update({'germany':'berlin','japan':'tokyo'})

#ν•­λͺ© μ‚­μ œ
city = dic1.pop('uk') ν•΄λ‹Ή value κ°’ λ°˜ν™˜
#ν•˜μ§€λ§Œ 이 μ½”λ“œλŠ” 였λ₯˜ λ°œμƒ ν™•λ₯ μ΄ λ†’λ‹€. ν•΄λ‹Ή key값이 μ—†μœΌλ©΄?
if 'uk' in dic1:
	dic1.pop('uk')
    
#λ”•μ…”λ„ˆλ¦¬ ν•­λͺ© λ°©λ¬Έ
for key in dic1:
	#key값을 이제 μ‚¬μš© κ°€λŠ₯
    print(key, ":", dic1[key])
for key,value in dic1.items(): #items λ©”μ†Œλ“œ ν™œμš©
	#킀와 값을 νŠœν”Œλ‘œ λ°˜ν™˜
    #key value둜 μ–ΈνŒ¨ν‚Ή
	#key, value λ°˜ν™˜
    print(key, ":", value)
print(dic1.keys())
print(dic1.values())
#key와 valueκ°’μ˜ μ‹œν€€μŠ€λ₯Ό 각각 λ°˜ν™˜

#λ”•μ…”λ„ˆλ¦¬μ˜ μ •λ ¬
#μˆœμ„œκ°€ 없기에 μ„ΈνŠΈμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ sorted()ν•¨μˆ˜ μ‚¬μš©
for key in sorted(dic1.keys()):
	print(key,end= " ")

#λ”•μ…”λ„ˆλ¦¬ 함좕
#λ˜‘κ°™μ΄ 리슀트 생성 ν›„
values = [1,2,3,4,5,6]
result = { x : x**x for x in alist if x%2==0 } 

κ·Έ μ™Έμ˜ λ”•μ…”λ„ˆλ¦¬ λ©”μ†Œλ“œλ“€
λ”•μ…”λ„ˆλ¦¬

profile
컴퓨터 곡학과 이방인

0개의 λŒ“κΈ€