파이썬 기초 - list comprehension

LSH·2023년 5월 18일
0

교육 정보

  • 교육 명: 경기미래기술학교 AI 교육
  • 교육 기간: 2023.05.08 ~ 2023.10.31
  • 오늘의 커리큘럼: 빅데이터 기초 활용 역량 강화 (5/10~6/9) - 파이썬 프로그래밍
  • 강사: 조미정 강사님 (빅데이터, 머신러닝, 인공지능)
  • 강의 계획:
    1. 파이썬 언어 기초 프로그래밍
    2. 크롤링 - 데이터 분석을 위한 데이터 수집(파이썬으로 진행)
    3. 탐색적 데이터 분석, 분석 실습
    - 분석은 파이썬만으로는 할 수 없으므로 분석 라이브러리/시각화 라이브러리를 통해 분석
    4. 통계기반 데이터 분석
    5. 미니프로젝트

1. List Comprehension

1.1 기초

  • 리스트와 딕셔너리를 간단하게 생성하는 방법
  • for ~ in 구조를 가짐
  • 리스트
    -[표현식 for 항목 in iterable객체]
  • 딕셔너리
    - {key 표현식: value 표현식 for 항목 in iterable객체}
#리스트를 받아서 각 요소를 두배한 리스트를 생성할때 맵을 사용하면 이렇게 됨 
list_a = [1,2,3,4,5]
result = list(map(lambda x : x*2,list_a))
print(result)
#이걸 list comprehension으로 사용햇을때 이렇게 됨 
result = [x*2 for x in list_a]
print(result)
#
#결과
[2, 4, 6, 8, 10]
[2, 4, 6, 8, 10]

1.2 조건문

  • 조건문을 사용하여 요소 값을 결정 할 수 있음
  • if문만 사용할 경우
    • [표현식 for 변수명 in iterable객체 if 조건]
  • if else문을 사용할 경우
    • [표현식1 if 조건1
      else 표현식2 if 조건2
      else 표현식3
      for 변수명 in iterable객체]
# 0~4 중 짝수는 그대로 출력, 홀수는 "odd"라고 출력하려고 할때 
result = []
for i in range(5):
    if i%2 == 0:
        result.append(i)
    else:
        result.append('odd')
print(result)
# list comprehension으로 코딩하면
result=[i if i % 2 ==0 else 'odd' for i in range(5)]
print(result)
#
#결과
[0, 'odd', 2, 'odd', 4]
[0, 'odd', 2, 'odd', 4]

1.3 중복 for문

  • list comprehension의 for문을 중복해서 사용 가능함
#두개의 리스트의 가능한 모든 조합을 출력하고자 할때
main_dish = ['치킨','피자','햄버거']
dessert = ['딸기','아이스크림','커피']
foods =[]
for x in main_dish :
    for y in dessert: 
        f = (x,y)
        foods.append(f)
print(foods)
# list comprehension으로 코딩하면
foods2=[(x,y) for x in main_dish for y in dessert ]
print(foods2)
#
#결과
[('치킨', '딸기'), ('치킨', '아이스크림'), ('치킨', '커피'), ('피자', '딸기'), ('피자', '아이스크림'), ('피자', '커피'), ('햄버거', '딸기'), ('햄버거', '아이스크림'), ('햄버거', '커피')]
[('치킨', '딸기'), ('치킨', '아이스크림'), ('치킨', '커피'), ('피자', '딸기'), ('피자', '아이스크림'), ('피자', '커피'), ('햄버거', '딸기'), ('햄버거', '아이스크림'), ('햄버거', '커피')]
profile
:D

0개의 댓글