# ๋ค์์๋ถํฐ ์ฌ๋ผ์ด์ฑ
06. ๋ค์์ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์์ ์ฒ์๊ณผ ๋์ 3๊ธ์๋ฅผ ์ถ์ถํ ํ ํฉ์ณ์ ์ถ๋ ฅํ๋ ํ์ด์ฌ ์ฝ๋์ด๋ค. โ์ ๋ค์ด๊ฐ ๋ด์ฉ์?
string = input('7๋ฌธ์ ์ด์ ์
๋ ฅํ์์ค :')
m = (โ)
print(m)
์
๋ ฅ๊ฐ: Hello World
์ต์ข
์ถ๋ ฅ: Helrld
์ ๋ต : string[0:3] + stirng[-3:]
- ๋ฌธ์์ด์ ๊ฒฝ์ฐ ์ ์ธ๋ฑ์ค 0๋ฒ๋ถํฐ ์์, ๋ค์์ ์ธ๋ฑ์ค ์
๋๋ ๋งจ ๋์๋ฆฌ๊ฐ -1
- ์ฌ๋ผ์ด์ฑ ํ ๋ [์์์ :๋์ ]์์ ๋์ ์ ํฌํจ ์ํ๊ณ ๋์ -1์๋ฆฌ๊น์ง ์๋ผ์ ๋ฐํ
- ๋ค์์๋ถํฐ ์ฌ๋ผ์ด์ฑ ํ ๋ [-1:-3] (์๋ฐฉํฅ์ด๋ผ ๊ฐ๋ฅ)
- ํ์ง๋ง [-3:-1] ์ด๋ฐ ๊ฒฝ์ฐ [] ๋น ๊ดํธ ์ถ๋ ฅ
- ์๋ฅด๋ ๋ฐฉํฅ์ด ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ด๋ฉด -1 ๋ฃ์ด์ค์ผ ํจ [-3:-1:-1]
# ์ธ์๋ก ๋ฆฌ์คํธ ๋ฐ์ ๋
27. ๋ค์ ํ์ด์ฌ(Python) ํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฐ๊ณผ๋?
def test(x, y=[]):
y.append(x)
return y
print(test(1))
print(test(2))
์ ๋ต :
[1]
[1, 2]
ํ๋ฆฐ ์ด์ :
๋งค๊ฐ๋ณ์๋ก ๋ค์ด์จ y=[] ๋น๋ฆฌ์คํธ๊ฐ ์ ์ญ ๋ณ์์ฒ๋ผ ์ ์ง๋๋์ง ๋ชฐ๋์
๋๋ ํด๋น ๊ฐ์ ํจ์ ์์์๋ง ์ฌ์ฉ๋๊ณ test(1) ํจ์๊ฐ ๋๋๋ฉด ์ฌ๋ผ์ง๋ ์ง์ญ ๋ณ์ ๊ฐ๋
์ด๋ผ๊ณ ์๊ฐํ์
ํ์ง๋ง ์ธ์๋ก ๋ฐ์ ๋ฆฌ์คํธ๋ ์ฌ์์ฑ๋์ง ์๊ณ ํจ์๊ฐ ์ ์๋ ๋ ํ ๋ฒ๋ง ์์ฑ๋๊ณ ๊ทธ ์ดํ์๋ ๊ฐ์ ์ฌ์ฌ์ฉ
def test(x, y=None):
if y is None:
y = []
y.append(x)
return y
print(test(1)) # ์ถ๋ ฅ: [1]
print(test(2)) # ์ถ๋ ฅ: [2]
์ด๋ฐ ๋์์ ๋ฐฉ์งํ๋ ค๋ฉด, ๊ธฐ๋ณธ ์ธ์๋ก None์ ์ฌ์ฉํ๊ณ , ํจ์ ๋ด๋ถ์์ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก ์์ ํด์ผ ํ๋ค. ์์ ์ฝ๋์ฒ๋ผ ์์ฑํ๋ฉด ๋งค๋ฒ ํธ์ถํ ๋ ์๋ก์ด ๋ฆฌ์คํธ๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์, ๊ฐ๊ฐ์ ํธ์ถ์ด ๋
๋ฆฝ์ ์ผ๋ก ๋์ํ๋ค.
# ๋ฌธ์์ด์ ์ธ๋ฑ์ค
28. ๋ค์ ํ์ด์ฌ(Python) ํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฐ๊ณผ๋?
class arr:
a = ['Seoul', 'Keyonggi', 'Inchon', 'Daejoen', 'Daegu', 'Busan']
str = ''
for i in arr.a:
str = str + i[0]
print(str)
์ ๋ต : SKIDDB
ํ๋ฆฐ ์ด์ : ๋ฆฌ์คํธ ๊ฐ์์ i[0] ์ด๋ผ๋๊ฒ ์ ํํ ๋ฌด์์ ์ง์นญํ๋์ง ๋ชฐ๋์.
i ๊ฐ ๋ฆฌ์คํธ์ ๊ฐ ์์๋ค์ธ๋ฐ ํ์ด์ฌ์์๋ ๋ฌธ์์ด์๋ ์ธ๋ฑ์ค๊ฐ ์์.
์ฆ ๊ฐ ์์์ ์ฒซ๋ฒ์งธ ๊ธ์๋ฅผ ๋งํ๋ ๊ฒ. ์ด ๊ฒฝ์ฐ ๋ฆฌ์คํธ์ [ ]์์ด ๊ธ์ ํ๋์ฉ๋ง ์ถ์ถ๋จ
# ๋๋ค(lambda)
โ Lambda(๋๋ค) ๋?
ํ์ด์ฌ์์ **๋๋ค(lambda)**๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋ ์ต๋ช
ํจ์์
๋๋ค. lambda ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋๋ฉฐ, ๋ณดํต ๊ฐ๋จํ ํจ์๋ ์ผํ์ฑ ํจ์๊ฐ ํ์ํ ๊ณณ์์ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
๋๋ค ํจ์์ ์ผ๋ฐ์ ์ธ ํํ:
lambda ์ธ์1, ์ธ์2, ...: ํํ์
๋๋ค ํจ์๋ ๋ณดํต ํ ์ค๋ก ์์ฑ๋๊ณ , ์ฌ๋ฌ ์ค์ ๊ฑธ์น ๋ณต์กํ ๋ก์ง์ ํฌํจํ ์ ์์ต๋๋ค. ํจ์์ ๋ณธ๋ฌธ์๋ ํ๋์ ํํ์๋ง ๋ค์ด๊ฐ์ผ ํ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ๋ฉ๋๋ค.
โ ์ฌ์ฉ ์์
1. ๊ธฐ๋ณธ ์ฌ์ฉ ์์
add = lambda x, y: x + y
print(add(3, 5)) # ์ถ๋ ฅ: 8
์์ ์์๋ x์ y๋ฅผ ๋ํ๋ ๋๋ค ํจ์๋ก, add๋ผ๋ ๋ณ์์ ์ ์ฅ๋์ด ๋์ค์ ํธ์ถํ ์ ์์ต๋๋ค.
2. ํจ์์ ์ธ์๋ก ์ฌ์ฉ
๋๋ค๋ ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌํ ๋๋ ์ ์ฉํ๊ฒ ์ฐ์
๋๋ค.
์๋ฅผ ๋ค์ด, sorted() ํจ์์์ ์ ๋ ฌ ๊ธฐ์ค์ ์ ์ํ ๋ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
# ๋ ๋ฒ์งธ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ ์ ๋ ฌ
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
sorted_pairs = sorted(pairs, key=lambda pair: pair[1])
print(sorted_pairs)
# ์ถ๋ ฅ: [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
3. map(), filter(), reduce()์ ํจ๊ป ์ฌ์ฉ
- map() ์์:
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # ์ถ๋ ฅ: [1, 4, 9, 16]
- filter() ์์:
numbers = [1, 2, 3, 4]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # ์ถ๋ ฅ: [2, 4]
# lambda num: num+100, a
34. ๋ค์ ํ์ด์ฌ(Python) ํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฐ๊ณผ๋?
a = [1,2,3,4,5]
b = list(map(lambda num:num+100, a))
print(b)
๊ฒฐ๊ณผ๊ฐ : [101, 102, 103, 104, 105]
a ๋ผ๋ ์ปฌ๋ ์
์ ์๋ ๊ฐ์ ํ๋์ฉ ๋ฝ์์ ์์ num+100์ด๋ผ๋ ํจ์ ์ฒ๋ฆฌ๋ฅผ ํ์ฌ ๋ฆฌ์คํธ ํํ๋ก ๋ฐํ
36. ๋ค์ ํ์ด์ฌ(Python) ํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฐ๊ณผ๋?
contry = ['Korea', 'Spain', 'Germany', 'Canada', 'france', 'Serbia']
print(max(country))
print(max(country, key=lambda x:x[2]))
print(max(country, key=lambda i:i.lower()))
๊ฒฐ๊ณผ๊ฐ :
france
Korea
Spain
์์คํค ์ฝ๋๋ก A=65, a=97 ์ด๊ธฐ ๋๋ฌธ์ ์๋ฌธ์ f์ธ france๊ฐ ๊ฐ์ฅ ๋์ ๊ฐ ๊ฐ์ง
๋ ๋ฒ์งธ ์์๋ ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ x๋ผ๊ณ ๋ช
ํ๊ณ x์ 2๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ๋ผ๋ฆฌ ๋น๊ตํ๋ ๋ฌธ์
์ด ๋ ์ค๋ณต๊ฐ์ด ์์ผ๋ฉด ์ฒซ ๋ฒ์งธ ๋์ค๋ ๊ฐ์ด max ๊ฐ์ด๋ผ๊ณ ๋ณธ๋ค, ์ฆ Kor ๊ณผ Ger ๋ชจ๋ 2๋ฒ ์ธ๋ฑ์ค ๊ฐ์ด r์ด์ง๋ง Korea๊ฐ ๋ต
๋ง์ง๋ง์ ๋ฌธ์๋ฅผ ๋ชจ๋ ์๋ฌธ์๋ก ๋ฐ๊พธ๊ณ ๋น๊ตํ๊ธฐ. spain ๊ณผ serbia ๋ชจ๋ s๋ก ๊ฐ์ด ๋์ผํ์ง๋ง ๋จผ์ ๋์จ spain์ด ๋ต