파이썬 - list comprehension

킴스코딩클럽·2022년 6월 17일
0
post-thumbnail

리스트의 특정 데이터값을 변경할 때?

products = ['joa=2020','joa-2021','siro-2021','siro-2022'] 
recall = [ ] #리콜 대상 제품 리스트
for p in products: #for반복문
	if p.startswith('siro'):#제품명이 siro로 시작한다면?
    	recall.append(p) #recall리스트에 추가함
print(racall)
>> 실행 결과 : ['siro-2021','siro-2022']
#siro로 시작하는 제품명의 리스트 확인

list comprehension
리스트 내에서 어떤 조건에 해당하는 데이터만 뽑거나
값을 바꿔서 새로운 리스틀 만들 때 사용

new_list = [변수 활용 for 변수 in 반복대상 if 조건]

my_list = [1,2,3,4,5]
listcomprehension을 이용해 3보다 큰 수만 뽑아내려면
new_list = [x for x in my_list if x>3]

my list를 순회하며 값이 3보다 큰지 확인 필요→for x in my list
for x(변수) in my_list(반복 대상)


리스트 내의 x를 임의로 바꾸는 작업을 할 수 있음
for 앞에 x를 이용한 식을 적용

x → # [1,2,3,4,5]
x+1 → # [2,3,4,5,6]
x*3 → # [3,6,9,12,15]
str(x) +'번째' $ # ['1번쨰,'2번째','3번째',....]


if 조건문

if x>3

새로운 리스트를 만들 때 값이 3보다 큰 경우에만 그 값을 사용하라는 뜻

if 조건문 적용 시
x → # [1,2,3,4,5]
x+1 → # [2,3,4,5,6]
x*3 → # [3,6,9,12,15]
str(x) +'번째' # ['1번쨰,'2번째','3번째','4번째',....]


결론

python
my_list = [1,2,3,4,5]
new_list = [x for x in my_list if x>3]
""" my list에서 
3보다 큰 값들만
그대로 사용해서
새로운 리스트로 만들어 줘 
라는 의미의 코드
"""

다시 처음으로 돌아가서

products = ['joa=2020','joa-2021','siro-2021','siro-2022'] 
recall = [ ] #리콜 대상 제품 리스트
for p in products: #for반복문
	if p.startswith('siro'):#제품명이 siro로 시작한다면?
    	recall.append(p) #recall리스트에 추가함
print(racall)
>> 실행 결과 : ['siro-2021','siro-2022']
#siro로 시작하는 제품명의 리스트 확인

리스트 컴프리헨션 적용

products = ['joa=2020','joa-2021','siro-2021','siro-2022'] 
recall = [p for p in products if p.startswith('siro')]
print(recall)
>> 실행 결과 : ['siro=2021','siro-2022']
# products라는 리스트에서 제품의 이름이 siro로 시작하는 경우에만 그대로 가져와서 새로운 리스트를 만들게 됨
my_list = ['korea',;English', 'france']
new_list = [x.upper() for x in my_list if 'a' in x]
print(new_list)
>> 실행 : ['KOREA','FRANCE']
# 프랑스와 코리아에 A가 들어있으므로 가져와 리스트생성하고 대문자로변경
# 잉글리시에는 A가 없으므로 리스트에서 제외
profile
공부 기록용

0개의 댓글