[python] enumerate, map, filter, zip

HYEJIN·2022년 9월 21일
0

파이썬 문법

목록 보기
2/2

for - in 이터러블한 객체(list, range,enemerate,zip ... )

📌 enumerate

값 뿐만 아니라 해당 리스트에 해당하는 인덱스까지 알 수 있다.

fruits = ['사과','배','딸기'];
for idx,fruit in enumerate(fruits):
	print(f"{idx+1}번째 과일은 {fruit}");

📌 map

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

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

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

0개의 댓글