728x90
반응형
Day 9 리뷰 문제
# REVIEW 1) 1~20 숫자 중 짝수만 포함하는 리스트 컴프리헨션 만들기
#방법1
[i for i in range (1,21) if i % 2 ==0]
#방법2
[i for i in range (2,21,2)]
# REVIEW 2) 주어진 리스트 [1,2,3,4,5,6,7,8,9,10]에서 5보다 큰 숫자만을 포함하는 새로운 리스트를 리스트 컴프리헨션을 사용해 만들기
numList = [1,2,3,4,5,6,7,8,9,10]
overFiveList = [i for i in numList if i > 5]
print(overFiveList) #[6,7,8,9,10]
# REVIEW 3) 문자열 리스트 ['apple','banana','cherry','date']에서 각 단어의 첫 글자만을 추출하여 새로운 리스트 만들기
# 예상 답안 ['a','b','c','d']
fruits = ['apple','banana','cherry','date']
firstLetterList = [i[0] for i in fruits]
print (firstLetterList) # ['a','b','c','d']
# REVIEW 4) 위의 FRUITS를 대문자화 하기
fruitsUpper= [i.upper() for i in fruits]
print(fruitsUpper) # ['APPLE','BANANA','CHERRY','DATE']
Day 10
딕셔너리 컴프리헨션 (Dictionary Comprehension)
딕셔너리 컴프리헨션은 Key 값과 Value 쌍을 생성하여 Dictionary를 만드는데 사용됨.
구조: {키 : 값 for 변수 in 리스트 or 문자열}
zip 함수의 기본 사용법
#1. zip 함수를 이해하기 쉬운 비유로 설명하자면, 'zipper' 처럼 서로 다른 두 줄의 요소들을 하나씩 짝지어 올리는 것임
#2. zip 함수는 두 개 이상의 리스트를 받아서, 첫 번재 리스트의 첫 번째 요소와 두 번째 리스트의 첫 번째 요소를 묶고, 다음으로 두 번째 요소들을 묶는 식으로 진행
(#Dict 리뷰)
#dict_comp
normalPopcorn = {
'name':'일반',
'price':'2500',
} #이렇게 생긴게 Dict 였다.
(# Dict_comp 활용)
# #dict_comp을 활용하려면 zip를 해주어야 한다
# #zipper
# zipped = zip(coffee,price)
# print(list(zipped)) #[('아메리카노', 2500), ('라떼', 3000), ('바닐라', 3500)]
coffee = ['아메리카노','라떼','바닐라']
price = [2500,3000,3500]
result = [{'이름':name,'가격':price} for name,price in zip(coffee,price)]
print(result)
#[{'이름': '아메리카노', '가격': 2500}, {'이름': '라떼', '가격': 3000}, {'이름': '바닐라', '가격': 3500}]
coffee = ['아메리카노','라떼','바닐라']
price = [2500,3000,3500]
caffeine=[120,150,50]
resultC = [{'이름':name,'카페인':caffeine} for name,caffeine in zip(coffee,caffeine)]
print(resultC)
(#Enumerate 리뷰)
#enumerate 순서랑 값 나타내기
for index,item in enumerate(coffee): #enumerate 순서랑 값 나타냄
print(f"{index}.{item}")
#결과 0. 아메리카노
#결과 1. 라떼
#결과 2. 바닐라
(#Dict comp, Enumerate, Zip 활용)
#아래 popcorn = 의 dict를 {index ~~ for ~ in enumerate(zip()) 을 활용하여 표현 가능하다
coffee = ['아메리카노','라떼','바닐라']
price = [2500,3000,3500]
a= {index: {'이름':coffee, '가격':price} for index,(coffee,price) in enumerate(zip (coffee,price))}
popcorn = {
1: {
'name':'일반',
'price':2500
}
}
print(a)
# {0: {'이름': '아메리카노', '가격': 2500}, 1: {'이름': '라떼', '가격': 3000}, 2: {'이름': '바닐라', '가격': 3500}}
#1 for coffee,price in zip (coffee,price)
#2 for index,(coffee,price) in enumerate(zip (coffee,price))
#3 딕셔너리화 {for index,(coffee,price) in enumerate(zip (coffee,price))}
#4 딕셔너리 값에 인덱스넣기 {index:{'name':coffee,'price':price} for index,(coffee,price) in enumerate(zip (coffee,price))}
Day 10
Function
1. 프로그래밍과 함수의 관계
특징: 함수는 프로그램에서 중요한 역할을 하며, 코드를 조직화하고 재사용할 수 있게 해줌.
이는 유지 보수를 쉽게 하고, 이는 유지 보수를 쉽게 하고 프로그램의 복잡성을 줄이는 데 기여함
2. 함수 정의 방법: def 키워드
설명: 함수를 호출하려면 함수 이름과 괄호를 사용함. 괄호 안에는 함수가 정의될 때 지정된 매개변수에 해당하는 인자를 넣어 줌. 함수가 호출되면, 파이썬은 함수의 본문을 실행.
3. 키워드 매개변수 (Keyword Arguments)
설명: 키워드 매개변수를 사용하면 인수를 전달할 때 매개변수의 이름을 명시적으로 지정할 수 있음. 이렇게 하면, 인수의 순서가 바뀌어도 올바르게 전달 됨.
(예시: pet_name과 animal_type의 순서가 바뀌어도 함수가 올바르게 작동)
(예시 2)
def add(x,y):
result = x+y
def minus(x,y):
result = x-y
def multiply(x,y):
result = x*y
def oddEven(x):
if x%2 ==0 :
return "짝수입니다"
else:
return "홀수입니다"
a = oddEven(5)
print(a)
4. 기본 매개변수 값 설정
설명: 함수 정의 시 매개변수에 기본값을 설정할 수 있음. 호출 시 해당 매개변수에 값을 제공하지 않으면, 기본값이 사용됨.
(예시: animal_type에 기본값 'dog'가 설정되어 있으므로, pet_name_만 전달해도 함수가 작동함)
(응용예시)
def makeListDict(xList,yList,xKey,yKey):
return [{xKey: x, yKey: y} for x,y in zip(xList,yList)]
breads = ['소금빵','보름달','단팥빵','앙버터','마카롱']
prices = [2500,1000,2400,4500,3000]
result= makeListDict(breads,prices,'빵','가격')
print(result)
#[{'빵': '소금빵', '가격': 2500}, {'빵': '보름달', '가격': 1000}, {'빵': '단팥빵', '가격': 2400}, {'빵': '앙버터', '가격': 4500}, {'빵': '마카롱', '가격': 3000}]
반응형
'데이터분석 > Python 파이썬 1달만에 마스터하기' 카테고리의 다른 글
Day13 객체, class함수, __init__ 활용하기 [파이썬 1달만에 마스터하기] (0) | 2024.01.19 |
---|---|
Day12 가변 매개변수, 람다함수, 콜백함수, 내장함수 [파이썬 1달만에 마스터하기] (0) | 2024.01.19 |
Day9 조건문 / 중첩 루프 컴프리헨션, For, While, Break, Continue [파이썬 1달만에 마스터하기] (0) | 2024.01.16 |
Day8 for x in range 함수 응용, 리스트, 텍스트, enumerate [파이썬 1달만에 마스터하기] (0) | 2024.01.12 |
Day7 Random, randint, choice, shuffle, 반복문 for x in range [파이썬 1달만에 마스터하기] (1) | 2024.01.11 |