λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Python/Programming

πŸ”³ Python(#4)-μžλ£Œν˜•(νƒ€μž…)_2와 λ³€μˆ˜

by μ•Œ 수 μ—†λŠ” μ‚¬μš©μž 2020. 4. 2.
 

πŸ”³ Python(#3)- μžλ£Œν˜•(νƒ€μž…)_1

Python(#2)-python μž…μΆœλ ₯ 및 계산 ※이 κ°•μ˜λŠ” Windows κΈ°μ€€μœΌλ‘œ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€ Python(#1) - python ν™˜κ²½ μ‘°μ„± 및 기초 μ•Œμ•„λ³΄κΈ°! ※이 κ°•μ’Œλ“€μ€ Windows κΈ°μ€€μœΌλ‘œ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€ μ•ˆλ…•ν•˜μ„Έμš” Python 기초 κ°•μ’Œ..

blog.hyb.kr

μ§€λ‚œ μ‹œκ°„μ—λŠ” 숫자, λ¬Έμžμ—΄ μžλ£Œν˜•, 뢈 μžλ£Œν˜•μ„ λ°°μ› μŠ΅λ‹ˆλ‹€

μ΄λ²ˆμ—λŠ” 리슀트, νŠœν”Œ, λ”•μ…”λ„ˆλ¦¬ μžλ£Œν˜•μ— λŒ€ν•΄ λ°°μ›Œλ³΄κ² μŠ΅λ‹ˆλ‹€

(집합 μžλ£Œν˜•μ€ 아직 크게 ν•„μš”ν•œ μ‹œμ μ΄ μ•„λ‹ˆκΈ°μ—, 닀루지 μ•Šκ² μŠ΅λ‹ˆλ‹€)

그리고 λ³€μˆ˜λ„μš”


리슀트 μžλ£Œν˜•(List)

리슀트 μžλ£Œν˜•μ€ μ—¬λŸ¬ 개의 값듀을 λ‚˜μ—΄ν•΄ 놓은 것,

말 κ·ΈλŒ€λ‘œ 리슀트의 ν˜•νƒœλ₯Ό λ±λ‹ˆλ‹€

 A=list()		#λ‘˜ λ‹€ 값이 μ—†λŠ” 빈 리슀트λ₯Ό 생성 ν•˜λŠ” 방법
 A=[]
 
 type(A)	#<class 'list'>

 

μœ„μ˜ λ°©λ²•λ“€λ‘œ 빈 리슀트λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€

A=['python', True, ['is','good'], 1004]		#listμ—λŠ” μžλ£Œν˜•μ˜ 상관없이 λͺ¨λ“  값듀이 λ“€μ–΄κ°ˆ 수 μžˆλ‹€
print(A)					#['python', 'is', 'always', 1004]

 

List μ—λŠ” λͺ¨λ“  μžλ£Œν˜•μ΄ λ“€μ–΄κ°ˆ 수 μžˆμŠ΅λ‹ˆλ‹€

 

리슀트의 인덱싱과 μŠ¬λΌμ΄μ‹±

λ¦¬μŠ€νŠΈμ™€ λ¬Έμžμ—΄μ—λŠ” λ˜‘κ°™μ€ κΈ°λŠ₯이 ν•˜λ‚˜ μžˆμŠ΅λ‹ˆλ‹€

 

λ°”λ‘œ 인덱싱이라고 λΆˆλ¦¬λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€

 

인덱싱은 ν•΄λ‹Ή λ¬Έμžμ—΄, λ¦¬μŠ€νŠΈμ— μˆœμ„œλ₯Ό λΆ€μ—¬ν•΄ κ·Έ μˆœμ„œμ— μžˆλŠ” 값을 λΆˆλŸ¬μ˜€λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€

 

A=['a','b','c','d','e','f','g']
#   0   1   2   3   4   5   6
B=abcdefg
# 0123456
print(A[0])		#a
print(B[0])		#a
print(A[-1])		#g

β€»νŒŒμ΄μ¬μ€ μˆœμ„œλ₯Ό μ…€ λ•Œ 1λΆ€ν„° 세지 μ•Šκ³  0λΆ€ν„° μ…‰λ‹ˆλ‹€

A와 B의 0λ²ˆμ§Έμ— μžˆλŠ” 값을 보면 λ‘˜ λ‹€ aμž…λ‹ˆλ‹€

 

인덱싱은 이런 μ‹μœΌλ‘œ λ¬Έμžμ—΄κ³Ό λ¦¬μŠ€νŠΈμ— μˆœμ„œλ₯Ό 맀겨 ν•΄λ‹Ή 값을 λΆˆλŸ¬μ˜€λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€

 

인덱싱은 1,2 같은 μ–‘μˆ˜λΏ μ•„λ‹ˆλΌ -1,-2 같은 음수λ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ 리슀트, λ¬Έμžμ—΄μ˜ 맨 끝에 μžˆλŠ” 값듀을 

 

리슀트, λ¬Έμžμ—΄μ˜ 길이λ₯Ό λͺ°λΌλ‘œ μ‰½κ²Œ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€

 

 

또, λ¦¬μŠ€νŠΈμ—λŠ” μŠ¬λΌμ΄μ‹±μ΄λΌλŠ” κΈ°λŠ₯이 μžˆμŠ΅λ‹ˆλ‹€

A=['python', 'is','very', 'good']

μ΄λΌλŠ” λ¦¬μŠ€νŠΈκ°€ μžˆμ—ˆμ„ λ•Œ,

 

μŠ¬λΌμ΄μ‹±μ„ μ“°λ©΄ 리슀트의 νŠΉμ • λΆ€λΆ„λ§Œμ„ λΉΌλ‚΄ 올 수 μžˆμŠ΅λ‹ˆλ‹€

 

λ¬Όλ‘  λ¬Έμžμ—΄ μžλ£Œν˜•λ„ κ°™μŠ΅λ‹ˆλ‹€

 

A[1:2]	#['is','very']
A[1:]	#['is','very','good']
A[:2]	#['python','is']

μŠ¬λΌμ΄μ‹±μ€ μœ„μ™€ 같이 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€

 

인덱싱과 κ°€μž₯ 큰 μ°¨μ΄λŠ” λŒ€κ΄„ν˜Έ[] μ•ˆμ˜ 콜둠(:) 이 λ“€μ–΄κ°„λ‹€λŠ” 점으둜,

 

콜둠이 μ—†λ‹€λ©΄ 인덱싱,  μžˆλ‹€λ©΄ μŠ¬λΌμ΄μ‹±μž…λ‹ˆλ‹€

 

 


리슀트의 μ—°μ‚°, ν•¨μˆ˜

μ΄λŸ¬ν•œ λ¦¬μŠ€νŠΈμ—λŠ” μ—°μ‚° κΈ°λŠ₯κ³Ό, 리슀트의 κ΄€λ ¨λœ ν•¨μˆ˜λ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€

 

μš°μ„  연산을 보면,

 

a=[1,2,3]
b=[4,5,6]

a+b		#[1,2,3,4,5,6]
a*2		#[1,2,3,1,2,3]

λ”ν•˜κΈ°μ™€ κ³±ν•˜κΈ°λ₯Ό λ“€ 수 μžˆλ‹€

 

λ”ν•˜κΈ°λŠ” 두 개 μ΄μƒμ˜ 리슀트λ₯Ό 합쳐 ν•˜λ‚˜μ˜ 리슀트둜 λ§Œλ“€μ–΄ μ£Όκ³ ,

 

κ³±ν•˜κΈ°λŠ” 같은 리슀트λ₯Ό λ°˜λ³΅ν•΄ μƒˆλ‘œμš΄ 리슀트λ₯Ό λ§Œλ“€μ–΄λƒ…λ‹ˆλ‹€

 

이것도 인덱싱, μŠ¬λΌμ΄μ‹±κ³Ό 같이 λ¬Έμžμ—΄κ³Ό λΉ„μŠ·ν•œ ν˜•νƒœλ₯Ό λ±λ‹ˆλ‹€

 

 

λ¦¬μŠ€νŠΈμ™€ κ΄€λ ¨λœ ν•¨μˆ˜λŠ” κ½€ μ’…λ₯˜κ°€ λ§ŽμŠ΅λ‹ˆλ‹€

그쀑 기초적인 것은

 

append()       

sort()

reverse()

pop()

count(x)

extend()

 

정도가 μžˆμŠ΅λ‹ˆλ‹€

이듀은 각각 μˆœμ„œλŒ€λ‘œ

 

μš”μ†Œ μΆ”κ°€

리슀트 μ •λ ¬

리슀트 뒀집기

리슀트 μš”μ†Œ 제거

리슀트 μš”μ†Œ 끄집어내기

λ¦¬μŠ€νŠΈμ—μ„œ x의 개수 μ„ΈκΈ°

리슀트 ν™•μž₯

 

의 κΈ°λŠ₯을 가지고 μžˆμŠ΅λ‹ˆλ‹€

 

A=[1,1,2,4,3]

A.append(10)		#[1,1,2,4,3,10]
A.sort()		#[1,1,2,3,4,10]
A.reverse()		#[10,4,3,2,1,1]
A.pop(4)		#[10,3,2,1,1]
A.count(1)		2
A.extend([100, 1000]	#[10,3,2,1,1,100,1000]

ν•¨μˆ˜λ“€μ˜ μ‚¬μš© 방법은 μœ„μ™€ κ°™μŠ΅λ‹ˆλ‹€


νŠœν”Œ(tuple)

νŠœν”Œμ„ μ•žμ„œ λ°°μ› λ˜ 리슀트λ₯Ό μ•Œκ³  μžˆλ‹€λ©΄ 정말 μ‰½μŠ΅λ‹ˆλ‹€

 

λ¦¬μŠ€νŠΈμ™€ νŠœν”Œμ˜ 차이점은 λŒ€κ΄„ν˜Έ[]μ˜€λ˜ λ¦¬μŠ€νŠΈμ™€λŠ” λ‹€λ₯΄κ²Œ νŠœν”Œμ€ μ†Œκ΄„ν˜Έ()이며,

 

νŠœν”Œμ˜ 값듀은 리슀트의 κ°’λ“€κ³Ό 달리 λ°”λ€” 수 μ—†λ‹€λŠ” μ μž…λ‹ˆλ‹€

 

μ•„ 그리고 νŠœν”Œμ€ κ΄„ν˜Έλ₯Ό μ”Œμš°μ§€ μ•Šκ³  μž…λ ₯해도 νŠœν”Œμ΄ 되며,

μš”μ†Œκ°€ 1κ°œμ—¬λ„ 뒀에 λ°˜λ“œμ‹œ 콀마(,)λ₯Ό λΆ™μ—¬μ•Ό ν•©λ‹ˆλ‹€

 

tuple_1=()		#빈 νŠœν”Œ
tuple_1 = 1,2,3		#값이 1,2,3 인 νŠœν”Œ
tuple_1 = (1,)		#값이 1 인 νŠœν”Œ
tuple_1 = (1,2,3)	#값이 1,2,3 인 νŠœν”Œ

μ΄λ ‡κ²Œ νŠœν”Œμ„ μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€

 

νŠœν”Œμ€ μ•žμ„œ λ§ν–ˆλ“― λ³€ν•˜μ§€ μ•ŠκΈ°μ—, 리슀트의 ν•¨μˆ˜λ“€μ€ μ‚¬μš©λ  수 μ—†μŠ΅λ‹ˆλ‹€

 

κ·Έ λŒ€μ‹ , 리슀트처럼 연산은 κ°€λŠ₯ν•©λ‹ˆλ‹€

tuple_1=(1,2,3)
tuple_2=(4,5,6)

tuple_1+tuple_2		#(1,2,3,4,5,6)
tuple_1*3		#(1,2,3,1,2,3,1,2,3)

λ”•μ…”λ„ˆλ¦¬(dictionary)

λ”•μ…”λ„ˆλ¦¬ μžλ£Œν˜•μ€ 리슀트의 ν™•μž₯판이라고 μƒκ°ν•˜λ©΄ νŽΈν•©λ‹ˆλ‹€

 

'key'λ₯Ό 톡해 그에 ν•΄λ‹Ήν•˜λŠ” 'value'을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€

 

백문이 λΆˆμ—¬μΌκ²¬μž…λ‹ˆλ‹€

예λ₯Ό λ΄λ΄…μ‹œλ‹€

dict_a={'name'='Python', 'password'='00001111', 'birth'='20000202'}

μœ„ λ”•μ…”λ„ˆλ¦¬μ—μ„œ 'key'λŠ” name, password, birth이고,

 

각각의 key에 λŒ€ν•œ valueλŠ” Python, 00001111, 20000202μž…λ‹ˆλ‹€

 

 

λ”•μ…”λ„ˆλ¦¬μ˜ 이용 방법은 κ°„λ‹¨ν•©λ‹ˆλ‹€

dict_a={'name'='Python', 'password'='00001111', 'birth'='20000202'}

dict_a['name']		#Python
dict_a['password']	#00001111

μœ„ 예처럼 ν‚€λ₯Ό μΈλ±μ‹±μ²˜λŸΌ μž…λ ₯ν•˜λ©΄ ν•΄λ‹Ή 값이 λ‚˜μ˜΅λ‹ˆλ‹€

 

μ—¬κΈ°μ„œ μ£Όμ˜ν•  사항은 λ”•μ…”λ„ˆλ¦¬λŠ” 'ν‚€'λ₯Ό 톡해 값을 μΆœλ €ν•˜λ―€λ‘œ

 

'ν‚€'κ°€ 겹치면 μ•ˆ λ©λ‹ˆλ‹€


각 μžλ£Œν˜•μ— κ΄€ν•œ 더 μžμ„Έν•œ μ„€λͺ…은 μ˜ˆμ œλ“€μ„ ν’€λ©΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•©μ‹œλ‹€

 

ν˜Ήμ‹œ 더 μžμ„Έν•œ μ„€λͺ…을 보고 μ‹Άλ‹€λ©΄ νŽ˜μ΄μ§€ 맨 μ•„λž˜μͺ½μ— μžˆλŠ” 링크λ₯Ό μ°Έκ³ ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€


λ³€μˆ˜(variable)

 

μ§€κΈˆμ—μ„œμ•Ό λ³€μˆ˜λ₯Ό μ„€λͺ…ν•˜μ§€λ§Œ μš°λ¦¬λŠ” μ§€κΈˆκΉŒμ§€ 계속 λ³€μˆ˜λ₯Ό μ΄μš©ν•΄μ™”μŠ΅λ‹ˆλ‹€

 

μ»΄ν“¨ν„°μ—μ„œμ˜ λ³€μˆ˜λŠ” μˆ˜ν•™μ—μ„œμ˜ λ³€μˆ˜μ™€ λ‹€λ₯Έ κ°œλ…μ΄ μ•„λ‹™λ‹ˆλ‹€

 

κ·Έμ € ν•΄λ‹Ή 값을 맀번 μ“Έ 수 μ—†μœΌλ‹ˆ 짧고 이해가 νŽΈν•˜κ²Œ 값을 μ €μž₯ν•œλ‹€κ³  μƒκ°ν•˜λ©΄ νŽΈν•©λ‹ˆλ‹€

 

a=123123
b='μ•ˆλ…•'
c=['list','tuple']
d=('list','tuple')
e={'list':'tuple')
f=True

μœ„μ˜ a, b, c, d, e, fλŠ” λͺ¨λ‘ λ³€μˆ˜μ΄λ‹€

 

초보자의 μž…μž₯μ—μ„œ λ³€μˆ˜λΌλŠ” κ°œλ…μ„ μ™„λ²½νžˆ κΉ¨μš°μΉ˜λŠ” 것은 κ³„λž€μœΌλ‘œ λ°”μœ„ 치기 만큼 μ“Έλ°μ—†λŠ” 짓이닀

 

μ–΄μ°¨ν”Ό μ—°μŠ΅μ„ ν•˜λ‹€ 보면 μ–΄λŠ 정도 λ³€μˆ˜λΌλŠ” κ°œλ…μ΄ μ΅μˆ™ν•΄μ§€λ©°, λ‚˜μ€‘μ—λŠ” μ™„λ²½ν•œ 이해가 κ°€λŠ₯ν•˜λ‹€


λ‹€μŒ μ‹œκ°„μ—λŠ” μ–Έμ–΄μ˜ 꽃(?) if문을 λ°°μ›Œλ³΄κ² μŠ΅λ‹ˆλ‹€

κ°μ‚¬ν•©λ‹ˆλ‹€^^

 

#ν”„λ‘œκ·Έλž˜λ°μ„ κ³΅λΆ€ν•˜λ©΄μ„œ μ€‘μš”ν•œ 건 κΎΈμ€€ν•œ κ΄€μ‹¬μž…λ‹ˆλ‹€

#ν—·κ°ˆλ¦¬λŠ” 것이 μžˆλ‹€λ©΄ ν•΄λ‹Ή μ–Έμ–΄μ˜ κ³΅μ‹λ¬Έμ„œλ‚˜ μœ„ν‚€ λ¬Έμ„œ 등을 μ΄μš©ν•˜λŠ” μŠ΅κ΄€μ„ κΈ°λ¦…μ‹œλ‹€^^

#파이썬 κ³΅μ‹λ¬Έμ„œ : https://docs.python.org/ko/3/

#파이썬 μœ„ν‚€ λ¬Έμ„œ : https://wikidocs.net/book/1

 

λŒ“κΈ€