List Comprehension : For문을 한 줄로 쓰기.
문법은 다음과 같다.
list comprehension
문법
가장 기본적인 형태 :[expression for element in iterable]
조건문이 추가된 형태 :[expression for element in iterable if condition]
#과제 for문을 이용하여 97부터 77까지 출력하시오
print([num for num in range(97, 76, -1)])
#과제 for문을 이용하여 23부터 40까지 출력하시오
print([num for num in range(23, 40)])
출력 결과
조건문이 추가된 형태
# 1~10 까지 홀수만 list에 넣기
numbers = [i for i in range(1,11) if i%2 == 1]
print(numbers)
# 다음 리스트에 있는 요소중에 가장 큰수와 가장 작은 수를 출력해 보세요
list2 = [4,5,2,1,99,15,2,7,27]
#sol1
print(f'min:{min(list2)} max:{max(list2)}')
#sol2
print(f'min:{(sorted(list2))[0]} max:{(sorted(list2))[-1]}')
#sol3
t_min, t_max = list2[0], list2[0]
for val in list2:
if t_min > val : t_min = val
if t_max < val : t_max = val
print(f'min:{t_min} max:{t_max}')
divmod()
를 사용하면 몫과 나머지를 한 번에 튜플형태로 받을 수 있다.
문법 :(몫, 나머지) = divmod(분모, 분자)
import math
input_data = int(input())
res = {input_data}
for i in range(1, int(math.sqrt(input_data))+1):
a, b = divmod(input_data,i)
if b == 0:
res.add(i)
res.add(a)
print(res)
enumerate()
함수를 사용하면
For문을 통해 list의 값을 꺼내 올 때, element에 index을 assign하여 처리할 수 있다.
score_list = [90,45,70,60,55]
for idx, val in enumerate(score_list, 1):
print(f'{idx}번 학생은 {"합격" if val>=60 else "불합격"}입니다.')
실행결과