๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
self-study/์ฝ”๋“œ์ž‡ - ๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค

[์ฝ”๋“œ์ž‡ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋ฐ์ดํ„ฐ in Python] ํŒŒ์ด์ฌ ์ดˆ๋ณด ํƒˆ์ถœ! ๋ฆฌ์ŠคํŠธ์™€ ๋”•์…”๋„ˆ๋ฆฌ ํ™œ์šฉ๋ฒ•๋ถ€ํ„ฐ ํ…์ŠคํŠธ ํŒŒ์ผ ์ฝ๊ธฐ·์“ฐ๊ธฐ ๋ฐฉ๋ฒ•

by all_zer0 2025. 1. 10.
๋ฐ˜์‘ํ˜•

 

 

๋ฆฌ์ŠคํŠธ

1. ๋ฆฌ์ŠคํŠธ์™€ ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ

[ ์ฝ”๋“œ ]

# ๋ฆฌ์ŠคํŠธ(list)
numbers = [2, 3, 5, 7, 11, 13]
names = ["์œค์ˆ˜", "ํ˜œ๋ฆฐ", "ํƒœํ˜ธ", "์˜ํ›ˆ"]

# ์ธ๋ฑ์‹ฑ(indexing)
print(numbers[1] + numbers[3])

# ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ(list slicing)
print(numbers[0:4])
[ ์ถœ๋ ฅ๋ฌผ ]

10
[2, 3, 5, 7]

 

 

2. ๋ฆฌ์ŠคํŠธ ํ•จ์ˆ˜

- len(๋ฆฌ์ŠคํŠธ๋ช…) : ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•จ์ˆ˜

- ๋ฆฌ์ŠคํŠธ๋ช….append(๊ฐ’) : ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

- del ๋ฆฌ์ŠคํŠธ๋ช…[๋ฒˆํ˜ธ] : ๋ฆฌ์ŠคํŠธ๋ช…์˜ [๋ฒˆํ˜ธ]๋ฒˆ์งธ ๊ฐ’์„ ์‚ญ์ œํ•˜๋Š” ํ•จ์ˆ˜

- ๋ฆฌ์ŠคํŠธ๋ช….insert(๋ฒˆํ˜ธ, ๊ฐ’) : ๋ฒˆํ˜ธ๋ฒˆ์งธ์— ๊ฐ’์„ ์ž…๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

 

 

3. ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ

[ ์ฝ”๋“œ ]

numbers = [19, 13, 2, 5, 3, 11, 7, 17]

new_list = sorted(numbers)	# ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, sorted(numbers, reverse=True)
print(new_list)		# ๊ธฐ์กด ๋ฆฌ์ŠคํŠธ๋Š” ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ , ์ •๋ ฌ๋œ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ด
[ ์ถœ๋ ฅ๋ฌผ ]

[2, 3, 5, 7, 11, 13, 17, 19]

 

- sort๋Š” ์•„๋ฌด๊ฒƒ๋„ return ํ•˜์ง€ ์•Š๊ณ , list๋ฅผ ์ •๋ ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•  ๊ฒƒ

[ ์ฝ”๋“œ ]

numbers = [19, 13, 2, 5, 3, 11, 7, 17]

# ์ž˜๋ชป๋œ ์ฝ”๋“œ
print(numbers.sort())

# ์ˆ˜์ •๋œ ์ฝ”๋“œ
numbers.sort()
print(numbers)
[ ์ถœ๋ ฅ๋ฌผ ]

None
[2, 3, 5, 7, 11, 13, 17, 19]

 

 

4. ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ’์˜ ์กด์žฌ ํ™•์ธํ•˜๊ธฐ(in)

[ ์ฝ”๋“œ ]

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 in primes)
print(12 in primes)
[ ์ถœ๋ ฅ๋ฌผ ]

True
False

 

- ๋ฐ˜๋Œ€๋กœ ๊ฐ’์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” not in

[ ์ฝ”๋“œ ]

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 not in primes)
print(12 not in primes)
[ ์ถœ๋ ฅ๋ฌผ ]

False
True

 

 

5. ๋ฆฌ์ŠคํŠธ ๋ฉ”์†Œ๋“œ

(1) sort ๋ฉ”์†Œ๋“œ : sorted ํ•จ์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒ, sort() ๋ฉ”์†Œ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ ์ž์ฒด๋ฅผ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ๋ฐ”๊ฟ” ์คŒ

[ ์ฝ”๋“œ ]

numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
[ ์ถœ๋ ฅ๋ฌผ ]

[1, 3, 5, 7]

 

 

(2) reserve ๋ฉ”์†Œ๋“œ : ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋“ค์„ ๋’ค์ง‘์–ด์ง„ ์ˆœ์„œ๋กœ ๋ฐฐ์น˜

[ ์ฝ”๋“œ ]

numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
[ ์ถœ๋ ฅ๋ฌผ ]

[1, 7, 3, 5]

 

 

(3) index ๋ฉ”์†Œ๋“œ : ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์›์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌํ„ด

[ ์ฝ”๋“œ ]

members = ["์˜ํ›ˆ", "์œค์ˆ˜", "ํƒœํ˜ธ", "ํ˜œ๋ฆฐ"]
print(members.index("์œค์ˆ˜"))
print(members.index("ํƒœํ˜ธ"))
[ ์ถœ๋ ฅ๋ฌผ ]

1
2

 

 

(4) remove ๋ฉ”์†Œ๋“œ : ์ฒซ ๋ฒˆ์งธ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์›์†Œ๋ฅผ ์‚ญ์ œ

[ ์ฝ”๋“œ ]

fruits = ["๋”ธ๊ธฐ", "๋‹น๊ทผ", "ํŒŒ์ธ์• ํ”Œ", "์ˆ˜๋ฐ•", "์ฐธ์™ธ", "๋ฉ”๋ก "]
fruits.remove("ํŒŒ์ธ์• ํ”Œ")
print(fruits)
[ ์ถœ๋ ฅ๋ฌผ ]

['๋”ธ๊ธฐ', '๋‹น๊ทผ', '์ˆ˜๋ฐ•', '์ฐธ์™ธ', '๋ฉ”๋ก ']

 

 

range ํ•จ์ˆ˜

- for ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋ฆฌ์ŠคํŠธ์˜ ์ „์ฒด ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

[ ์ฝ”๋“œ ]

my_list = [2, 3, 5, 7, 11]

for number in my_list:
	print(number)
[ ์ถœ๋ ฅ๋ฌผ ]

2
3
5
7
11

 

- ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐฏ์ˆ˜์— ๋”ฐ๋ฅธ range ํ•จ์ˆ˜

# ํŒŒ๋ผ๋ฏธํ„ฐ 1๊ฐœ ๋ฒ„์ „ : 0๋ถ€ํ„ฐ (stop-1)๊นŒ์ง€์˜ ๋ฒ”์œ„
for i in range (stop) :
	print(i)
    
    
# ํŒŒ๋ผ๋ฏธํ„ฐ 2๊ฐœ ๋ฒ„์ „ : start๋ถ€ํ„ฐ (stop-1)๊นŒ์ง€์˜ ๋ฒ”์œ„
for i in range (start, stop) :
	print(i)


# ํŒŒ๋ผ๋ฏธํ„ฐ 3๊ฐœ ๋ฒ„์ „ : start๋ถ€ํ„ฐ (stop-1)๊ฐ€์ง€์˜ ๋ฒ”์œ„๋ฅผ step์˜ ๊ฐ„๊ฒฉ์œผ๋กœ ์ถœ๋ ฅ
for i in range (start, stop, step) :
	print(i)

 

 

์‚ฌ์ „(dictionary)

[ ์ฝ”๋“œ ]

my_dictionary = {
	5: 25,			# key-value pair(ํ‚ค-๊ฐ’ ์Œ)
    	2: 4,
    	3: 9
}

print(my_dictionary[3])

 

 

Aliasing

[ ์ฝ”๋“œ ]

x = [2, 3, 5, 7, 11]
y = x
y[2] = 4

print(x)
print(y)
[ ์ถœ๋ ฅ๋ฌผ ]

[2, 3, 4, 7, 11]
[2, 3, 4, 7, 11]

- y๋Š” x์˜ ๊ฐ€๋ช…(alias)์ผ ๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์— x์™€ y์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ชจ๋‘ ๋ณ€๊ฒฝ

 

[ ์ฝ”๋“œ ]

x = [2, 3, 5, 7, 11]
y = list(x)
y[2] = 4

print(x)
print(y)
[ ์ถœ๋ ฅ๋ฌผ ]

[2, 3, 5, 7, 11]
[2, 3, 4, 7, 11]

- ์ฝ”๋“œ 2์—ด์—์„œ y๋Š” x์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณต์ œํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— y๋งŒ ๋ณ€๊ฒฝ

 

 

๋ฆฌ์ŠคํŠธ์™€ ๋ฌธ์ž์—ด

1. ๊ณตํ†ต์ 

- ์ธ๋ฑ์‹ฑ(Indexing) ๊ฐ€๋Šฅ

- for ๋ฐ˜๋ณต๋ฌธ ํ™œ์šฉ ๊ฐ€๋Šฅ

- ์Šฌ๋ผ์ด์‹ฑ ๊ฐ€๋Šฅ

- ๋ง์…ˆ ์—ฐ์‚ฐ : ๋ง์…ˆ์€ "์—ฐ๊ฒฐ"ํ•˜๋Š” ์—ฐ์‚ฐ

- len ํ•จ์ˆ˜ ๊ฐ€๋Šฅ

 

2. ์ฐจ์ด์ 

- ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฌธ์ž์—ด์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊ฟ€์ˆ˜ ์—†์Œ

- ๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•์„ 'mutable'ํ•œ ์ž๋ฃŒํ˜•์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์ด ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•์„ 'immutable'ํ•œ ์ž๋ฃŒํ˜•์ด๋ผ๊ณ  ๋ถ€๋ฆ„

 

 

txtํŒŒ์ผ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ

# ํŒŒ์ผ ์ฝ๊ธฐ

with open('chicken.txt', 'r') as f:  
    for line in f:  
        print(line.strip())
        

# ํŒŒ์ผ ์“ฐ๊ธฐ

with open('new_file.txt', 'w') as f:	# write์€ ๋ฎ์–ด์“ฐ๊ธฐ
	f.write("Hello world!\n")
	f.wrtie("My name is Codeit. \n")

with open('new_file.txt', 'a') as f:   # append๋Š” ์ถ”๊ฐ€
	f.write("Hello world!\n")
	f.wrtie("My name is Codeit. \n")

 

 

๋ฐ˜์‘ํ˜•

'self-study > ์ฝ”๋“œ์ž‡ - ๋ฐ์ดํ„ฐ์‚ฌ์ด์–ธ์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ฝ”๋“œ์ž‡ : ๊ธฐ์ดˆ ํ†ต๊ณ„์™€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”] ํ†ต๊ณ„์™€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์™„๋ฒฝ ๊ฐ€์ด๋“œ : ํ†ต๊ณ„ ๊ธฐ๋ณธ ์ƒ์‹ | seaborn | seaborn์œผ๋กœ ๊ทธ๋ž˜ํ”„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•  (0) 2025.01.25
[์ฝ”๋“œ์ž‡ : ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค Toolkit] ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ฒซ๊ฑธ์Œ - Numpy, Pandas, Matplotlib๋กœ ์‰ฝ๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋ฐฐ์šฐ๊ธฐ  (0) 2025.01.11
[์ฝ”๋“œ์ž‡ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ต์‹ฌ ๊ฐœ๋… in Python] Python ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์™„๋ฒฝ ์ •๋ฆฌ - ์ž๋ฃŒํ˜• | ๋ฌธ์ž์—ด | ์ œ์–ด๋ฌธ | ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ(PEP8)  (0) 2025.01.10
[์ฝ”๋“œ์ž‡ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์ž‘ํ•˜๊ธฐ in Python] ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ๊ฐœ๋… ํ•™์Šตํ•˜๊ธฐ - ์ž๋ฃŒํ˜• | ์ถ”์ƒํ™” | ํ•จ์ˆ˜ | ํŒŒ๋ผ๋ฏธํ„ฐ  (0) 2025.01.09
[์ฝ”๋“œ์ž‡ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฒ„๋ทฐ] ํŒŒ์ด์ฌ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ๋ถ„์„๊นŒ์ง€ : ๋น„์ „๊ณต์ž ์ดˆ๋ณด ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€์˜ ์ฝ”๋”ฉ ๊ณต๋ถ€ ์‹œ์ž‘ ๐Ÿƒ๐Ÿปโ€โ™€๏ธ  (0) 2025.01.09