for - in 이터러블한 객체(list, range,enemerate,zip ... )
값 뿐만 아니라 해당 리스트에 해당하는 인덱스까지 알 수 있다.
fruits = ['사과','배','딸기'];
for idx,fruit in enumerate(fruits):
print(f"{idx+1}번째 과일은 {fruit}");
map(함수, 리스트/튜플)
함수의 return 값은 항상 존재해야한다.
map객체로 출력되기 때문에 list로 형변환이 필요하다.
리스트 원소에 대해서 각 함수를 적용한다.
map자체를 출력하면 map객체로 출력되기 때문에 리스트로 형변환 하거나
for문을 사용해서 각 원소들을 출력해야한다.
prices = [500,300,1000,3400]
def print_price(price):
return f"{price}"원
print(list(map(print_price,prices)))
for i in map(print_price,prices):
print(i);
#lambda 활용
list(map(lambda x:f"{x}원",prices))
#10이하의 양의정수의 세제곱 구하기
list(map(lambda x:x**3,range(1,11)))
# 코테에서 일괄적으로 int를 적용하기 위해서도 많이 사용했음
input_list = list(map(int,input().split()));
filter(함수, 리스트/튜플)
함수의 return값은 True, False여야 한다.
map과 비슷하지만 함수가 true인 경우만 원소를 담아주게된다.
map과 동일하게 list로 형번환하거나 for문으로 출력해야한다.
def is_even(x):
return x%2==0
list(filter(is_even,range(10)))
list(filter(lambda x:x**x,range(10)))
# 100이하의 숫자 중 6의 배수를 리스트 형태로 출력
# 조건 :lambda , filter 사용
print(list(filter(lambda x:x%6==0,range(1,101))))
# [6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]
zip(iterable*)은 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수이다.
>>> list(zip([1, 2, 3], [4, 5, 6]))
[(1, 4), (2, 5), (3, 6)]
>>> list(zip("abc","def"))
[('a', 'd'), ('b', 'e'), ('c', 'f')]
>>> for x, y in zip(range(10), range(10)): # 두개의 0~9까지 숫자모음
>>> print(x, y)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9