-filter
'''
filter vs map
1.filter(함수,집합형)
==>집합형에서 함수를 적용해서 조건에 일치하는 값만 반환
2.filter 함수는 generator함수
'''
#help(filter)
x=[1,2,3,4,5,6,7,8,9,10]
#짝수만 출력 ==> list comprehension으로 구현
result=[i for i in x if i%2==0]
print(result)
def even(n):
print(n%2==0)
return n%2==0
even2=lambda n:n%2==0
result = filter(even, x)
result2= filter(even2,x)
result3= filter(lambda n:n%2==0,x) #(**********)
print(list(result))
print(list(result2))
print(list(result3))
#문제: 1~100 사이값 중에서 5의 배수이면서 60보다 큰 값만 출력하시오
#filter 사용
result4 = filter(lambda x: x % 5==0 and x > 60,list(range(1, 101)))
print(list(result4)) #[65, 70, 75, 80, 85, 90, 95, 100]
# 문제2: "asdfef1234xhgkasog452" 중에서 알파벳문자만 필터링해서 출력하시오.
result=filter(lambda n:n.isalpha(),"asdfef1234xhgkasog452")
#print(list(result)) <-이거 적으면 출력안됨.filter가 generator 함수여서 그럼
xxx=list(result)
print("".join(xxx))
-map
'''
filter vs map
2. map (함수, 집합형)
==> 집합형의 데이터를 가공하기 위한 함수를 적용
따라서 원본 데이터의 갯수만큼 반환됨.
'''
print("#"*100)
x=["Abc","He","WEd","Hwang","Ye","vin"]
def my_upper(n):
return n.upper()
result=map(my_upper,x)
result=map(lambda n : n.upper(),x)
result=map(str.upper,x)
result=map(str.lower,x)
result=map(str.capitalize,x)
print(list(result))
print()
result=map(int,["9","44","2143"])
print(list(result))
result=map(str,[9,44,2143])
print(list(result))'python' 카테고리의 다른 글
| [python] class 중간 정리 (0) | 2022.09.26 |
|---|---|
| [python] class 객체생성 | 생성자 (0) | 2022.09.26 |
| [python] 변수의 scope | random 함수 (1) | 2022.09.26 |
| [python] generator 함수 (1) | 2022.09.26 |
| [python] lambda 함수 (0) | 2022.09.26 |