Notice
Recent Posts
Link
Today
Total
10-06 00:17
관리 메뉴

dingdong coding

[ Python ] μžλ£Œν˜• λ³Έλ¬Έ

πŸ”΅Coding Test/Syntax

[ Python ] μžλ£Œν˜•

🐢 개발개발 🐾 2022. 2. 4. 03:59

수 μžλ£Œν˜•

* μ •μˆ˜ν˜•μ„ λ‹€λ£¨λŠ” 문제의 λΉ„μœ¨μ΄ 더 λ†’λ‹€

μ •μˆ˜ν˜• Integer : μ–‘μ˜ μ •μˆ˜, 음의 μ •μˆ˜, 0

a = 1000 # μ–‘μ˜ μ •μˆ˜
print(a) #1000

a = -7 # 음의 μ •μˆ˜
print(a) #-7

#0
a = 0
print(a) #0


예λ₯Ό λ“€μ–΄ λŒ€λΆ€λΆ„μ˜ μ–Έμ–΄μ—μ„œλŠ” HaspMap κ³Ό 같은 λ³„λ„μ˜ 라이브러리λ₯Ό μ΄μš©ν•΄μ•Ό 파이썬의 사전 μžλ£Œν˜• κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆλ‹€. νŒŒμ΄μ¬μ—λŠ” κΈ°λ³Έμžλ£Œν˜•μ΄ 이λ₯Ό μ§€μ›ν•˜λ―€λ‘œ κ΅¬ν˜„μ΄ νŽΈλ¦¬ν•˜λ‹€λŠ” μž₯점이 μžˆλ‹€.

μ‹€μˆ˜ν˜• Real Number : μ–‘μ˜ μ‹€μˆ˜, 음의 μ‹€μˆ˜

* μ†Œμˆ˜λΆ€κ°€ 0μ΄κ±°λ‚˜ μ •μˆ˜λΆ€κ°€ 0인 μ†Œμˆ˜λŠ” 0을 μƒλž΅ν•˜κ³  μž‘μ„±ν•  수 μžˆλ‹€.

a = 157.93 # μ–‘μ˜ μ‹€μˆ˜
print(a) # 157.93

a = -1837.2 # 음의 μ‹€μˆ˜
print(a) # -1837.2

a = 5. # μ†Œμˆ˜λΆ€κ°€ 0일 λ•Œ 0을 μƒλž΅
print(a) # 5.0

a = -.7 # μ •μˆ˜λΆ€κ°€ 0일 λ•Œ 0을 μƒλž΅
print(a) # -0.7


μ‹€μˆ˜ν˜• 데이터λ₯Ό ν‘œν˜„ν•˜λŠ” 방식 : μ§€μˆ˜ν‘œν˜„ 방식 ( e, E )

ex) 1e9 = 1,000,000,000

 

μ΅œλ‹¨ 경둜 문제 ( μ΅œλ‹¨ 경둜둜 κ°€λŠ₯ν•œ μ΅œλŒ“κ°’μ΄ 10μ–΅ 미만이라면 )
μ΅œλ‹¨ 거리 : λ¬΄ν•œ(INF) = 1e9

# 10μ–΅μ˜ μ§€μˆ˜ ν‘œν˜„ 방식
a = 1e9
print(a) #1000000000.0

#752.5
a= 75.25e1
print(a) #752.5

# 3.954
a = 3954e-3
print(a) #3.954


μ»΄ν“¨ν„°λŠ” μ‹€μˆ˜λ₯Ό μ •ν™•ν•˜κ²Œ ν‘œν˜„ν•˜μ§€ λͺ»ν•œλ‹€.

- 수 데이터 처리 : 2μ§„μˆ˜ 이용
- μ‹€μˆ˜ 처리 : 뢀동 μ†Œμˆ˜μ  방식 이용

a = 0.3 + 0.6
print(a) #0.8999999999999999

if a == 0.9:
    print(True)
else:
    print(False) 

#False


rouond( μ‹€μˆ˜ν˜• 데이터, λ°˜μ˜¬λ¦Όν•˜κ³ μž ν•˜λŠ” μœ„μΉ˜ -1 ) : μ†Œμˆ˜μ  값을 λΉ„κ΅ν•˜λŠ” μž‘μ—…μ΄ ν•„μš”ν•œ 문제 μ‹œ μ‚¬μš©

ex) round(123.456, 2) #123.46 if 인자λ₯Ό ν•˜λ‚˜λ§Œ 넣을 경우 μ†Œμˆ˜μ  첫째 μžλ¦¬μ—μ„œ 반올림

a = 0.3 + 0.6
print(round(a, 4)) #0.9

if round(a, 4) == 0.9:
    print(True)
else:
    print(False)

#True


수 μžλ£Œν˜•μ˜ μ—°μ‚° : +, -, *, /, %, //, **
λ‚˜λˆ„κΈ° μ—°μ‚°μž( / )λŠ” λ‚˜λˆ μ§„ κ²°κ³Όλ₯Ό 기본적으둜 μ‹€μˆ˜ν˜•μœΌλ‘œ 처리
% : λ‚˜λ¨Έμ§€ μ—°μ‚°μž
// : λͺ« μ—°μ‚°μž
** : κ±°λ“­μ œκ³± μ—°μ‚°μž

a = 7
b = 3

# λ‚˜λˆ„κΈ°
print(a/b) # 2.3333333333333335

# λ‚˜λ¨Έμ§€
print(a%b) # 1

# λͺ«
print(a//b) # 2

# κ±°λ“­μ œκ³±
print(a**b) # 343

 

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

* μ—¬λŸ¬ 개의 데이터λ₯Ό μ—°μ†μ μœΌλ‘œ λ‹΄μ•„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ‚¬μš© ( Array κΈ°λŠ₯ )
* λ‚΄λΆ€μ μœΌλ‘œ μ—°κ²° 리슀트 자료ꡬ쑰λ₯Ό 채택 : append( ), remove( ) λ“±μ˜ λ©”μ„œλ“œλ₯Ό 지원

리슀트 λ§Œλ“€κΈ°
λŒ€κ΄„ν˜Έ [ ] μ•ˆμ— μ›μ†Œλ₯Ό λ„£μ–΄ μ΄ˆκΈ°ν™”ν•˜λ©° μ‰Όν‘œ(,)둜 μ›μ†Œλ₯Ό ꡬ뢄
리슀트의 μ›μ†Œμ— μ ‘κ·Ό μ‹œ Index κ°’(0λΆ€ν„° μ‹œμž‘)을 κ΄„ν˜Έ μ•ˆμ— λ„£λŠ”λ‹€.

λΉ„μ–΄μžˆλŠ” 리슀트 μ„ μ–Έ μ‹œ : list( ) or [ ]

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 인덱슀 4, 즉 λ‹€μ„― 번째 μ›μ†Œμ— μ ‘κ·Ό
print(a[4]) # 5

# 빈 리슀트 μ„ μ–Έ 방법 1)
a = list()
print(a) # []

# 빈 리슀트 μ„ μ–Έ 방법 2)
a = [ ]
print(a) # []


* 주둜 크기가 N인 1차원 리슀트 μ΄ˆκΈ°ν™” μ‹œ 리슀트 μ‚¬μš©

n = 10
a = [0] * n
print(a) #[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

 

리슀트 인덱싱과 μŠ¬λΌμ΄μ‹±
인덱싱 : 인덱슀 값을 μž…λ ₯ν•˜μ—¬ 리슀트의 νŠΉμ • μ›μ†Œμ— μ ‘κ·Όν•˜λŠ” 것, μ–‘μ˜ μ •μˆ˜, 음의 μ •μˆ˜ λͺ¨λ‘ μ‚¬μš© κ°€λŠ₯

* 음의 μ •μˆ˜ μ‚¬μš©μ‹œ μ›μ†Œλ₯Ό 거꾸둜 탐색, -1을 λ„£μœΌλ©΄ κ°€μž₯ λ§ˆμ§€λ§‰ μ›μ†Œκ°€ 좜λ ₯λœλ‹€.

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# λ’€μ—μ„œ 첫 번째 μ›μ†Œ 좜λ ₯
print(a[-1]) # 9

# λ’€μ—μ„œ μ„Έ 번째 μ›μ†Œ 좜λ ₯
print(a[-3]) # 7

# λ„€ 번째 μ›μ†Œ κ°’ λ³€κ²½
a[3] = 7
print(a) # [1, 2, 3, 7, 5, 6, 7, 8, 9]


μŠ¬λΌμ΄μ‹± : λ¦¬μŠ€νŠΈμ—μ„œ 연속적인 μœ„μΉ˜λ₯Ό κ°–λŠ” μ›μ†Œλ“€μ„ κ°€μ Έμ˜€λŠ” 것
λŒ€κ΄„ν˜Έ μ•ˆμ— 콜둠 : 을 λ„£μ–΄μ„œ μ‹œμž‘ μΈλ±μŠ€μ™€ ( 끝 인덱슀 - 1 ) 을 μ„€μ •ν•  수 μžˆλ‹€.

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 두 번째 μ›μ†ŒλΆ€ν„° λ„€ 번째 μ›μ†ŒκΉŒμ§€
print(a[1:4]) # [2, 3, 4]


리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜ : 리슀트λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” 방법 쀑 ν•˜λ‚˜

λŒ€κ΄„ν˜Έ[ ] μ•ˆμ— 쑰건문과 λ°˜λ³΅λ¬Έμ„ λ„£λŠ” λ°©μ‹μœΌλ‘œ 리슀트λ₯Ό μ΄ˆκΈ°ν™”
νŠΉμ • 크기λ₯Ό κ°€μ§€λŠ” 2차원 리슀트λ₯Ό μ΄ˆκΈ°ν™”ν•  λ•Œμ—λŠ” 리슀트 μ»΄ν”„λ¦¬ν•Έμ…˜μ„ μ΄μš©ν•΄μ•Ό ν•œλ‹€.

# 0λΆ€ν„° 19κΉŒμ§€μ˜ 수 μ€‘μ—μ„œ ν™€μˆ˜λ§Œ ν¬ν•¨ν•˜λŠ” 리슀트
array = [ i for i in range(20) if i%2 == 1]

print(array) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

# 1λΆ€ν„° 9κΉŒμ§€μ˜ 수의 제곱 값을 ν¬ν•¨ν•˜λŠ” 리슀트
array = [ i*i for i in range(1, 10) ]

print(array) # [1, 4, 9, 16, 25, 36, 49, 64, 81]

# N * M 크기의 2차원 리슀트 μ΄ˆκΈ°ν™”
n = 3
m = 4
array = [[0] * m for _ in range(n)]

print(array) # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

 

* 언더바 ( _ ) : λ°˜λ³΅μ„ μœ„ν•œ λ³€μˆ˜μ˜ 값을 λ¬΄μ‹œν•˜κ³ μž ν•  λ•Œ μ‚¬μš© 423p μ°Έκ³ 

리슀트 κ΄€λ ¨ 기타 λ©”μ„œλ“œ

λ©”μ„œλ“œ λͺ… μ‚¬μš©λ²• μ„€λͺ… μ‹œκ°„ λ³΅μž‘λ„
append( ) λ³€μˆ˜λͺ….append( ) λ¦¬μŠ€νŠΈμ— μ›μ†Œλ₯Ό ν•˜λ‚˜ μ‚½μž…ν•  λ•Œ μ‚¬μš© O(1)
sort( ) λ³€μˆ˜λͺ….sort( ) κΈ°λ³Έ μ •λ ¬ κΈ°λŠ₯으둜 μ˜€λ¦„μ°¨μˆœμ •λ ¬ O(NlogN)
λ³€μˆ˜λͺ….sort(reverse = True) λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ O(N)
reverse( ) λ³€μˆ˜λͺ….reverse( ) 리슀트의 μ›μ†Œμ˜ μˆœμ„œλ₯Ό λͺ¨λ‘ λ’€μ§‘μŒ O(N)
insert( ) λ³€μˆ˜λͺ….insert(μ‚½μž…ν•  μœ„μΉ˜ 인덱슀, μ‚½μž…ν•  κ°’) νŠΉμ • 인덱슀 μœ„μΉ˜μ— μ›μ†Œ μ‚½μž… O(N)
count( ) λ³€μˆ˜λͺ….count(νŠΉμ • κ°’) λ¦¬μŠ€νŠΈμ—μ„œ νŠΉμ •ν•œ 값을 κ°€μ§€λŠ” λ°μ΄ν„°κ°œμˆ˜ μ…€ λ•Œ O(N)
remove( ) λ³€μˆ˜λͺ….remove(νŠΉμ • κ°’) νŠΉμ •ν•œ 값을 κ°–λŠ” μ›μ†Œλ₯Ό μ œκ±°ν•˜λŠ”λ° 값을 가진 μ›μ†Œκ°€ μ—¬λŸ¬ 개면 ν•˜λ‚˜λ§Œ 제거 O(N)
a = [1, 3, 4]
print("기본 리슀트: ", a) # [1, 3, 4]

# λ¦¬μŠ€νŠΈμ— μ›μ†Œ μ‚½μž…
a.append(2)
print("μ‚½μž…: ", a) # [1, 3, 4, 2]

# μ˜€λ¦„μ°¨μˆœ μ •λ ¬
a.sort()
print("μ˜€λ¦„μ°¨μˆœ μ •λ ¬: ", a) # [1, 2, 3, 4]

# λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬
a.sort(reverse = True)
print("λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬: ", a) # [4, 3, 2, 1]

# 리슀트 μ›μ†Œ 뒀집기
a.reverse()
print("μ›μ†Œ 뒀집기: ", a) # [1, 2, 3, 4]

# νŠΉμ • μΈλ±μŠ€μ— 데이터 μΆ”κ°€
a.insert(2, 3)
print("인덱슀 2에 3 μΆ”κ°€: ", a) #  [1, 2, 3, 3, 4]

# νŠΉμ • 값인 데이터 개수 μ„ΈκΈ°
print("값이 3인 데이터 개수: ", a.count(3)) # 2

# νŠΉμ • κ°’ 데이터 μ‚­μ œ
a.remove(1)
print("값이 1인 데이터 μ‚­μ œ: ", a) # [2, 3, 3, 4]


insert( ) ν•¨μˆ˜λ₯Ό λ‚¨λ°œν•˜λ©΄ 'μ‹œκ°„ 초과'둜 ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜μ§€ λͺ»ν•  수 μžˆλ‹€ : μ‹œκ°„λ³΅μž‘λ„ O(N), remove( ) ν•¨μˆ˜λ„ λ§ˆμ°¬κ°€μ§€

listμ—μ„œ νŠΉμ • κ°’ 제거 μ‹œ

a = [1, 2, 3, 4, 5, 5, 5]
remove_set = {3, 5}

# remove_set에 ν¬ν•¨λ˜μ§€ μ•Šμ€ κ°’λ§Œμ„ 지정
result = [ i for i in a if i not in remove_set]
print(result) # [1, 2, 4]

# a에 ν¬ν•¨λœ μ›μ†Œλ₯Ό ν•˜λ‚˜μ”© ν™•μΈν•˜λ©° κ·Έ μ›μ†Œκ°€ remove_set에 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šμ•˜μ„ λ•Œλ§Œ 
# 리슀트 λ³€μˆ˜μΈ result에 λ„£κ² λ‹€λŠ” 의미


λ¬Έμžμ—΄ μžλ£Œν˜•

 

λ¬Έμžμ—΄ μ΄ˆκΈ°ν™” : ν°λ”°μ˜΄ν‘œ " or μž‘μ€λ”°μ˜΄ν‘œ ' μ‚¬μš©


- λ¬Έμžμ—΄μ„ ν°λ”°μ˜΄ν‘œλ‘œ κ΅¬μ„±ν•˜λŠ” 경우 : λ‚΄λΆ€μ μœΌλ‘œ μž‘μ€λ”°μ˜΄ν‘œ 포함 κ°€λŠ₯
- λ¬Έμžμ—΄μ„ μž‘μ€λ”°μ˜΄ν‘œλ‘œ κ΅¬μ„±ν•˜λŠ” 경우 : λ‚΄λΆ€μ μœΌλ‘œ ν°λ”°μ˜΄ν‘œ 포함 κ°€λŠ₯

- λ°±μŠ¬λž˜μ‹œ μ‚¬μš© \ : ν°λ”°μ˜΄ν‘œ, μž‘μ€λ”°μ˜΄ν‘œ μ›ν•˜λŠ” 만큼 포함

data = 'Hello World'
print(data) # Hello World

data = "Don't you know \"Python\""
print(data) # Don't you know "Python"

 

νŠœν”Œ μžλ£Œν˜•

 

Python의 νŠœν”Œ μžλ£Œν˜•μ€ λ¦¬μŠ€νŠΈμ™€ 거의 λΉ„μŠ·ν•œλ° λ‹€μŒκ³Ό 같은 차이가 μžˆλ‹€.

  • νŠœν”Œμ€ ν•œ 번 μ„ μ–Έλœ 값을 λ³€κ²½ν•  수 μ—†λ‹€.
  • λ¦¬μŠ€νŠΈλŠ” λŒ€κ΄„ν˜Έ [ ] λ₯Ό μ΄μš©ν•˜μ§€λ§Œ, νŠœν”Œμ€ μ†Œκ΄„ν˜Έ ( ) λ₯Ό μ΄μš©ν•œλ‹€.

* κ·Έλž˜ν”„ μ•Œκ³ λ¦¬μ¦˜μ„ κ΅¬ν˜„ν•  λ•Œ 자주 μ‚¬μš© : λ‹€μ΅μŠ€νŠΈλΌ μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜ 처럼 μ΅œλ‹¨ 경둜λ₯Ό μ°Ύμ•„μ£ΌλŠ” μ•Œκ³ λ¦¬μ¦˜ λ‚΄λΆ€μ—μ„œλŠ” μš°μ„ μˆœμœ„ 큐λ₯Ό μ‚¬μš©ν•˜λŠ”λ° ν•΄λ‹Ή μ•Œκ³ λ¦¬μ¦˜μ—μ„œ μš°μ„ μˆœμœ„ 큐에 ν•œ 번 λ“€μ–΄κ°„ 값은 λ³€κ²½λ˜μ§€ μ•ŠλŠ”λ‹€. κ·Έλž˜μ„œ κ·Έ μš°μ„ μˆœμœ„ 큐에 λ“€μ–΄κ°€λŠ” 데이터λ₯Ό νŠœν”Œλ‘œ κ΅¬μ„±ν•˜μ—¬ μ†ŒμŠ€μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.

* λ³€κ²½ λΆˆκ°€λŠ₯ν•œ μžλ£Œν˜• : ν•œ 번 μ΄ˆκΈ°ν™” 되면 변경이 λΆˆκ°€λŠ₯ν•œ μžλ£Œν˜•μ„ 의미, νŠœν”Œ μžλ£Œν˜•μ΄ 사전 μžλ£Œν˜•μ˜ ν‚€λ‘œ μ‚¬μš©λ˜κΈ°λ„ 함

사전 μžλ£Œν˜•

 

사전 μžλ£Œν˜• μ†Œκ°œ : ν‚€ Key와 κ°’ Value의 쌍으둜 데이터λ₯Ό κ°€μ§€λŠ” μžλ£Œν˜•


리슀트, νŠœν”Œ : 순차적으둜 μ €μž₯
사전 μžλ£Œν˜• : ν‚€ - κ°’ 쌍으둜 데이터λ₯Ό κ°€μ§„λ‹€λŠ” μ μ—μ„œ λ³€κ²½λΆˆκ°€λŠ₯ν•œ 데이터λ₯Ό ν‚€λ‘œ μ‚¬μš© κ°€λŠ₯


μ‚¬μ „μžλ£Œν˜•μ€ λ‚΄λΆ€μ μœΌλ‘œ ν•΄μ‹œν…Œμ΄λΈ”μ„ μ΄μš©ν•˜λ―€λ‘œ λ°μ΄ν„°μ˜ 검색 및 μˆ˜μ • μ‹œ O(1)의 μ‹œκ°„μ— 처리
ν‚€ - κ°’ 쌍으둜 κ΅¬μ„±λœ 데이터λ₯Ό μ²˜λ¦¬ν•¨μ— μžˆμ–΄μ„œ λ¦¬μŠ€νŠΈλ³΄λ‹€ 훨씬 λΉ λ₯΄κ²Œ λ™μž‘ν•œλ‹€.

data = dict()
data['사과'] = 'Apple'
data['λ°”λ‚˜λ‚˜'] = 'Banana'
data['μ½”μ½”λ„›'] = 'Coconut'

print(data) # {'사과': 'Apple', 'λ°”λ‚˜λ‚˜': 'Banana', 'μ½”μ½”λ„›': 'Coconut'}

if '사과' in data:
    print("'사과'λ₯Ό ν‚€λ‘œ κ°€μ§€λŠ” 데이터가 μ‘΄μž¬ν•©λ‹ˆλ‹€.")


** νŒŒμ΄μ¬μ—μ„œ 리슀트, λ¬Έμžμ—΄, νŠœν”Œ λ“± 순차적인 정보λ₯Ό λ‹΄λŠ” μžλ£Œν˜•μ„ iterable μžλ£Œν˜•μ΄λΌκ³  ν•œλ‹€. in 문법은 μ΄λŸ¬ν•œ iterable μžλ£Œν˜•μ— λͺ¨λ‘ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.

사전 μžλ£Œν˜• κ΄€λ ¨ ν•¨μˆ˜
keys( ) : ν‚€ λ°μ΄ν„°λ§Œ λ½‘μ•„μ„œ 리슀트둜 이용 μ‹œ
values( ) : κ°’ λ°μ΄ν„°λ§Œ λ½‘μ•„μ„œ 리슀트둜 이용 μ‹œ

data = dict()
data['사과'] = 'Apple'
data['λ°”λ‚˜λ‚˜'] = 'Banana'
data['μ½”μ½”λ„›'] = 'Coconut'

# ν‚€ λ°μ΄ν„°λ§Œ 담은 리슀트
key_list = data.keys()
# κ°’ λ°μ΄ν„°λ§Œ 담은 리슀트
value_list = data.values()
print(key_list) # dict_keys(['사과', 'λ°”λ‚˜λ‚˜', 'μ½”μ½”λ„›'])
print(value_list) # dict_values(['Apple', 'Banana', 'Coconut'])

# 각 킀에 λ”°λ₯Έ 값을 ν•˜λ‚˜μ”© 좜λ ₯
for key in key_list:
    print(data[key])

# Apple
# Banana
# Coconut

 

집합 μžλ£Œν˜•

 

집합 μžλ£Œν˜• μ†Œκ°œ : 집합Set을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ 집합 μžλ£Œν˜•, 리슀트 ν˜Ήμ€ λ¬Έμžμ—΄μ„ μ΄μš©ν•΄μ„œ 생성


- 쀑볡을 ν—ˆμš©ν•˜μ§€ X
- μˆœμ„œ X


μ‚¬μ „μžλ£Œν˜•, μ§‘ν•©μžλ£Œν˜• : μΈλ±μ‹±μœΌλ‘œ 값을 μ–»μ„μˆ˜ X ( μˆœμ„œκ°€ μ—†κΈ° λ•Œλ¬Έμ— )
μ§‘ν•©μžλ£Œν˜• : ν‚€κ°€ μ‘΄μž¬ν•˜μ§€ μ•Šκ³ , κ°’ λ°μ΄ν„°λ§Œμ„ λ‹΄κ²Œ λœλ‹€.

* 집합 μžλ£Œν˜•μ˜ νŠΉμ • μ›μ†Œκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ κ²€μ‚¬ν•˜λŠ” μ—°μ‚°μ˜ μ‹œκ°„λ³΅μž‘λ„ O(1)

νŠΉμ •ν•œ 데이터가 이미 λ“±μž₯ν•œ 적이 μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό 체크할 λ•Œ 맀우 효과적

μ΄ˆκΈ°ν™” 방법 : set( ) or { }

# 집합 μžλ£Œν˜• μ΄ˆκΈ°ν™” 방법 1
data = set([1, 1, 2, 3, 4, 4, 5])
print(data) # {1, 2, 3, 4, 5}

# 집합 μžλ£Œν˜• μ΄ˆκΈ°ν™” 방법 2
data = { 1, 1, 2, 3, 4, 4, 5 }
print(data) # {1, 2, 3, 4, 5}


집합 μžλ£Œν˜• μ—°μ‚° : 합집합 | , ꡐ집합 & , 차집합 -

a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])

print( a | b ) # 합집합 {1, 2, 3, 4, 5, 6, 7}
print( a & b ) # ꡐ집합 {3, 4, 5}
print( a - b ) # 차집합 {1, 2}


집합 μžλ£Œν˜• κ΄€λ ¨ ν•¨μˆ˜ : add( ), update( ), remove( ) * add( ), remove( ) : μ‹œκ°„ λ³΅μž‘λ„ O(1)

data = set([1, 2, 3])
print(data) # {1, 2, 3}

# μƒˆλ‘œμš΄ μ›μ†Œ μΆ”κ°€
data.add(4)
print(data) # {1, 2, 3, 4}

# μƒˆλ‘œμš΄ μ›μ†Œ μ—¬λŸ¬ 개 μΆ”κ°€
data.update([5, 6])
print(data) # {1, 2, 3, 4, 5, 6}

# νŠΉμ •ν•œ 값을 κ°–λŠ” μ›μ†Œ μ‚­μ œ
data.remove(3)
print(data) # {1, 2, 4, 5, 6}

 

 

λ³Έ κ²Œμ‹œλ¬Όμ€  [ 이것이 취업을 μœ„ν•œ μ½”λ”©ν…ŒμŠ€νŠΈλ‹€ with 파이썬  - λ‚˜λ™λΉˆ ] 을 μ°Έμ‘°ν•˜μ—¬ μ •λ¦¬ν•œ κ²Œμ‹œκΈ€μž…λ‹ˆλ‹€. 

 

Comments