์๋ฃ๊ตฌ์กฐ๋ ์ปดํจํฐ ๊ณผํ์์ ํจ์จ์ ์ธ ์ ๊ทผ ๋ฐ ์์ ์ ๊ฐ๋ฅ์ผ ํ๋ ์๋ฃ์ ์กฐ์ง, ๊ด๋ฆฌ, ์ ์ฅ์ ์๋ฏธํ๋ค.
์๋ฃ๋ฑ์ ์ ์ฅํ๋ ์ฌ๋ฌ๊ฐ์ง ๊ตฌ์กฐ์ด๋ค.
ํ์ด์ฌ์ ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅ
์๋ฃ๊ตฌ์กฐ์ ์ ํ ํ๋ก๊ทธ๋จ์ ํจ์จ์ฑ๊ณผ ์ฐ๊ณ ๋๋ค.
์ฝ๊ฒ ๋งํด์ ์๋ฃ๋ค์ ์ ์ฅํ๋ ์ฌ๋ฌ ๊ฐ์ง ๊ตฌ์กฐ๋ค์ ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ํ๋ค.
์ง๊ธ๊ป ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์์์ผ๋ ํ์ด์ฌ์์ ์ ๊ณตํ๋ ์๋ฃ๊ตฌ์กฐ๋ ๋ญ๊ฐ ์๋์ง ์์๋ณด์
ํ์ด์ฌ์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์๋ฃ๊ตฌ์กฐ
์์(element) ๊ตฌ์ฑ
์์ ๊ฐ์๋ ์์๊ฐ ์์
์ํ์ค์ ์์๋ค์ ๋ฒํธ๊ฐ -> ์ธ๋ฑ์ค
๋ฆฌ์คํธ, str, bytearray, list, tuple, range
-> ํ์ด์ฌ์ ๋ด์ฅ ์ํ์ค
๋์ผํ ์ฐ์ฐ์ ์ง์ : ์ธ๋ฑ์ฑ, ์ฌ๋ผ์ด์ฑ, ๋ง์
, ๊ณฑ์
๋ด์ฅํจ์ : len(),max(),min()
์ด์ฉ ๊ฐ๋ฅ
๋ฆฌ์คํธ๋ ํญ๋ชฉ(item)์ ์ ์ฅํ๋ ์ปจํ
์ด๋์ ์ผ๋ถ๋ก์ ๊ทธ ์์ ํญ๋ชฉ๋ค์ด ์์๋ฅผ ๊ฐ์ง๊ณ ์ ์ฅ๋๋ค.
๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ ํญ๋ชฉ์ ๊ฐ์๊ฐ ์ฆ๊ฐํ๋ฉด ์๋์ผ๋ก ์ฆ๊ฐํ๊ณ
์ด๋ค ํ์
์ ๋ฐ์ดํฐ๋ ์ ์ฅํ ์ ์๋ค.
ํ์ด์ฌ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก์
๋ฐฐ์ด๊ฐ์ผ๋ฉด์ Linked List ๊ฐ์ ๋๋
์ค๊ฐ์ ๋๋์ธ๋ฐ ํธํ๊ฒ์ด ์ถ๊ฐ๋ ๋๋์ด๋ค.
๋ค์์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฒ์ ๊ด๋ฆฌ ํ ์ ์๋ค.
temps = [28,31,33,35,27,26,25]
e = temp[3]
์ด์ฒ๋ผ ๋ก ๋ฌถ๊ณ ,(์ฝค๋ง)๋ก ๊ตฌ๋ถ์ ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฆฌ์คํธ๊ฐ ์ ์ธ๋๋ค.
๊ต์ฅํ ํธํ๋ค๊ณ ๋ณผ ์ ์๊ณ
์ ์ ๋ฟ ์๋๋ผ ์ด๋ ํ ๊ฒ์ธ์ง๋ ์ ์ฅํ ์ ์๋ค๋ ์์ฒญ๋ ์ฅ์ ์ด ์๋ค.
๋ฆฌ์คํธ์ ์์๋ค์ ์ ๋ถ ์ ๊ทผํ๊ธฐ ์ํด์?
๊ธฐ์กด์ for๋ฌธ์ ์ฐ๋ฉด ๋๋ค.
temps = [28,31,33,35,27,26,25]
for i in range(len(temps)):
print(temps[i], end = ',') #end = ','๋ ์ถ๋ ฅ ํ ์ํฐ ๋์ ,๋ถ์ด๊ธฐ
for element in temps:
print(element, end = ',') #์ธ๋ฑ์ค ๊ฐ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ๊ทธ๋ฅ
#element๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฆฌ์คํธ ์ ์ฒด์ ์ ๊ทผํ๊ธฐ
2๊ฐ๋ก ๋ฌถ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค
questions = ['name','color','quest']
answers = ['kim','py','blue']
for q,a in zip(questions,answers):
์ด๋ฐ์์ผ๋ก ๋ฌถ์ด์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
insert() -> ์ง์ ํ ์์น์ ์ถ๊ฐ
์ง์ ํ ์์น๊ฐ ์ค๊ฐ์ด๋ฉด ๊ธฐ์กด์ ๊ฒ๋ค์ ๋ค๋ก ํ์นธ์ฉ ๋ฐ๋ฆฐ๋ค.
index() -> ํด๋น ํญ๋ชฉ์ด ์ด๋ ์์น์ ์๋์ง ๋ฐํํด์ฃผ๋ ๊ฐ
๋ณ์์ ๋ฃ์ด๋ ๋๊ณ ๋ฐ๋ก ์ถ๋ ฅ์ ํด๋ ๋๋ค.
pop(), remove() -> ๋ฆฌ์คํธ์ ๊ฐ์ ์ญ์ ํ๋ ๋ฉ์๋๋ค
pop(i)๋ i๋ฒ์งธ ํญ๋ชฉ์ ์ญ์ ํ๊ณ ๋ฐํํ๋ ๋ฉ์๋๋ค
remove(i)๋ ๋๊ฐ์ด i๋ฒ์งธ ํญ๋ชฉ์ ์ญ์ ํ๊ณ ๋ฐํํ์ง ์๋๋ค.
์ญ์ ๋ฉ์๋๋ค์ ์ฌ์ฉํ ๋, ํญ๋ชฉ์ด ์๋์ง ์ ํ์ธํ์, ๊ทธ๋ฌ์ง ์๋๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋ฌ๊ธฐ ๋๋ฌธ์ ํ์ธํ๋ if๋ฌธ์ ๋ฃ๋์ง ํ์
์ต๋๊ฐ , ์ต์๊ฐ -> max, minํจ์ ์ฌ์ฉ
max(values), min(values) -> ๋ฆฌ์คํธ ์ด๋ฆ๋ง ๋ฃ์ด๋ ์๋์ผ๋ก ๋ฐํํด์ค
์ ๋ ฌ
a.sort()
a.sort(reverse = True) //๋ด๋ฆผ์ฐจ์
๋ด์ฅ ํจ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
ascending_numbers = sorted(numbers)
-> ์๋ก์ด ๋ฆฌ์คํธ ๋ด๊ธฐ
sort vs sorted ์ถ๊ฐ์ ์ธ ์ค๋ช
sort ํจ์๋ ๋ฆฌ์คํธ๋ช
.sort( ) ํ์์ผ๋ก "๋ฆฌ์คํธํ์ ๋ฉ์๋"์ด๋ฉฐ ๋ฆฌ์คํธ ์๋ณธ๊ฐ์ ์ง์ ์์ ํฉ๋๋ค.
sorted ํจ์๋ sorted( ๋ฆฌ์คํธ๋ช
) ํ์์ผ๋ก "๋ด์ฅ ํจ์"์ด๋ฉฐ ๋ฆฌ์คํธ ์๋ณธ ๊ฐ์ ๊ทธ๋๋ก์ด๊ณ ์ ๋ ฌ ๊ฐ์ ๋ฐํ
๋งค์ฐ ํธํ๋ค๊ณ ๋ณผ ์ ์์
๊ทธ ๋ฐ์
๋ฆฌ์คํธ์ ๋ฉ์๋๋ค

๋ฆฌ์คํธ์ ์ ์ฉํ ์ ์๋ ๋ด์ฅํจ์๋ค

๋๋จธ์ง๋ค์ ์ค์ต ํ์ผ ์ฐธ๊ณ
numbers = [1,2,3,4]
numbers2 = [5,6,7,8]
numbersfin = numbers + numbers2
numbers * 3 #1,2,3,4๊ฐ 3๋ฒ์ฉ
numbers = [0] * 12
#0์ด 12๊ฐ
๋ฆฌ์คํธ๋ ๋น๊ต์ฐ์ฐ์๋ฅผ ์ธ ์ ์๊ณ ๋ชจ๋ ํญ๋ชฉ์ด ์ ๋ถ True์ผ๋ True๋ค.
๋ฆฌ์คํธ์ ๋ณต์ฌ
์์ ๋ณต์ฌ, ๊น์ ๋ณต์ฌ
temps= [1,2,3,4,5]
values = temps #์์ ๋ณต์ฌ
values[3] = 5
#์ด๋ ๊ฒ ํ๋ฉด temps๋ ๊ฐ์ด ๋ฐ๋
values2 = list(temps)
#list() ์์ฑ์๋ฅผ ํ์ฉํด ์
๋ ฅ์ ๋ํด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ ๋ฐํํ๋ค.
#์ด๋ฌ๋ฉด ์์ ์๋ก์ด list๊ฐ ๋ง๋ค์ด์ ธ
#values2 ๊ฐ์ ๋ฐ๊ฟ๋ ๋ฐ๋์ง ์๋๋ค.
์์ ๋ณต์ฌ

๊น์ ๋ณต์ฌ

์ฌ๋ผ์ด์ฑ
์์์ ๋ฐฐ์ ๋ ๊ฑฐ์ฒ๋ผ
numbers[:3]
numbers[3:5]
numbers[3:9:2] 3๋ถํฐ 8๊น์ง 2์ ๊ฐ๊ฒฉ์ผ๋ก
ํ์ด์ฌ์ ๊ฐ์ผ๋ก ํธ์ถํ๋ ๋ฐฉ์
1. ๋ถ๋ณ ๊ฐ์ฒด์์ (int, float ๋ฑ)
call by value ํ์์ด๋ค. ์ฐธ์กฐ๊ฐ์ผ๋ก ์ ๋ฌ๋๋ฉฐ
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋งค๊ฐ ๋ณ์์ ์ ๋ฌํ๋ฉด ํจ์ ์์์ ๊ฐ์ฒด์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ์๋ก์ด ๊ฐ์ฒด๊ฐ ๋์จ๋ค.
id(์ฃผ์๊ฐ)๋ ๋ณํ๋ค๊ณ ๋ณด๋ฉด ๋ -> ์์ ์๋กญ๊ฒ ๊ฐ์ฒด๊ฐ ์๊ธด๋ค.
๋ฆฌ์คํธ๋ ? -> ๊ฐ๋ณ ๊ฐ์ฒด๋ผ์, ์ฐธ์กฐ๊ฐ์ผ๋ก ์ ๋ฌ๋๋ฉฐ, ํจ์ ๋ด์์ ๋ฆฌ์คํธ์ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค(call by reference)
ํ์ด์ฌ์ ๊ณ ์ ๋ฌธ๋ฒ์ผ๋ก ๊ฐ๊ฒฐํ ํํ์ด ๊ฐ๋ฅํ๋ค.
์ํ์๋ค์ ์งํฉ ์ ์ ๋ฐฉ์๊ณผ ์ ์ฌ
ํ์
[์์ for (๋ณ์ in ๋ฆฌ์คํธ) if (์กฐ๊ฑด)]
squares = [x * x for x in range(10)]
(์๋ก์ด ๋ฆฌ์คํธ) -> squares
x * x -> ๋ฆฌ์คํธ์ ์์๊ฐ ๋๋ ๊ฐ
x -> ์์ x์ ๋ํ์ฌ
์
๋ ฅ ๋ฆฌ์คํธ -> range 0 ~ 9๊น์ง
-> ์ด๋ฌ๋ฉด
squares = []
for x in range(10):
squares.append(x*x)
์ ๊ฐ์ ํํ์ด ๋๋ค.
์ฆ, ๋ฆฌ์คํธ์ ์ฝ์
ํ๋ ๊ฒ์ ๊ฐ๋จํ๊ฒ ํจ์ถํด์ฃผ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ if๋ฌธ์ ๋ฌ์ for๋ฌธ์์ if๋ฌธ์ ๋ฃ๋ ๊ณผ์ ์ ํ ์ค๋ก ์ค์ผ ์ ์๋ค.
์ด์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด ๋งค์ฐ ํธํด์ง๋ค.
๊ธฐ์กด ๋ฆฌ์คํธ์์ ์ ๋ฆฌ์คํธ์๋ค๊ฐ ์ฝ์
ํ ๋ ๋งค์ฐ ํจ์ถํ ์ ์๋ค.
number = [1,-3,4,5,-6]
newnumber = [i if i > 0 else 0 for i in prices]
#์ด ๊ณผ์ ์ ์๋๊ฒ๋ค์ 0์ผ๋ก ๋ง๋ค๊ธฐ ์ํด if๋ฌธ์ ์์ผ๋ก ๋บ๋ค
#์ผํญ ์ฐ์ฐ์ผ๋ ์ฌ์ฉํ๋ ๊ฒ
#ํ์
all_number = [1,2,3,4,5]
even_number = [x for x in all_number if x%2 == 0]
#for๋ฌธ ๋ค์ ์กฐ๊ฑด์ ๋ฃ๊ธฐ
๋๋จธ์ง๋ ์์ ๋ณด๊ธฐ
ํ๊ณผ ์ด์ด ๋ ๊ฐ์ง ์ ๋ณด๊ฐ (ํ์ ๋ํ ์ ๋ณด, ์ด์ ๋ํ ์ ๋ณด)๊ฐ ํ์ํ ๋ ์ฌ์ฉ
๊ตฌํ
#์ ์ธ
s = [[1,2,3],[4,5,6],[7,8,9]]
#๋์ ์์ฑ
rows = 3
cols = 5
s = []
for row in range(rows):
s += [[0]*cols]
#s์ ์ด์ด 5๊ฐ์ธ ๋ฆฌ์คํธ ์์ฑ
์ด๊ฒ๋ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ๊ฐ๋ฅ
rows = 3
cols = 5
s = [([0]*cols) for row in range(rows)]
๋ฆฌ์คํธ์ ์ ๊ทผ์ ๊ธฐ์กด์ 2์ฐจ์ ๋ฐฐ์ด๊ณผ ๋๊ฐ๋ค
๋ด๊ฐ ๋ง์ฝ 1ํ 2์ด์ ์ ๊ทผํ๊ณ ์ถ๋ค
s[0][1]
s[ํ์ธ๋ฑ์ค][์ด์ธ๋ฑ์ค]
ํ -> ์ธ๋ก ์ค ์ซ์ 1์ด๋๋ ๋ชจ์
row
์ด -> ์ซ์ 1์ ๋ํ์ ์ ๋ชจ์ ๊ฐ๋ก ์ค
column
3ํ์ด๋ฉด
1
2
3
3์ด์ด๋ฉด
1 2 3
2์ฐจ์๋ฆฌ์คํธ๋ ํจ์๋ก ์ ๋ฌํ ์ ์๊ณ , ํจ์ ์์์ ์ฐจ์์ ์ถ์ถ ๋๋ ๋ณ๊ฒฝ ๊ฐ๋ฅ
len(s[0]) ์ด์ ๊ธธ์ด
len(s) ํ์ ๊ธธ์ด๋ฅผ ์ด์ฉํด ์ด์ค for๋ฌธ์ ์ด์ฉํ์
๋๋จธ์ง๋ ์์ ๋ฅผ ๋ณด์