python 에서 for 순환 에서 유도 식 으로 의 구체 적 인 사용
전통 for 순환:
# 1 1000000
# ( )
for i in range(1,10**6+1):
if(i%2==0):
print(i)
# :
#2
#4
#.
#.
#.
#1000000
요약(직관 적 으로 코드 를 평가):요 구 를 완성 할 수 있 지만 코드 가 간결 하지 않다.개 선 된 코드 는 목록 유도 식 을 사용 합 니 다.
# 1 1000000
# ( )
print([i for i in range(1,10**6+1) if i%2==0])
# :
#2
#4
#.
#.
#.
#1000000
코드 운행 속도 에서 코드 를 평가 하 겠 습 니 다.전통 for 순환 의 운행 속도:
# clock()
# CPU , , time.time()
import time
cpu_start=time.clock()
for i in range(1,10**6+1):
if(i%2==0):
print(i)
cpu_end=time.clock()
print(" :",cpu_end-cpu_start)
# :
#2
#4
#.
#.
#.
#1000000
# : 2.1866424
# : 3.3-3.8 :DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
# python3.3 , , per_counter( ) process_time( )
목록 유도 식 운행 속도 사용:
# clock()
# CPU , , time.time()
import time
cpu_start=time.clock()
print([i for i in range(1,10**6+1) if i%2==0])
cpu_end=time.clock()
print(" :",cpu_end-cpu_start)
# :
#[2,4,6,8...1000000]
# : 0.005884400000000012
# : 3.3-3.8 :DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
# python3.3 , , per_counter( ) process_time( )
요약(코드 운행 속도 에서 평가):목록 유도 식 코드 를 사용 하 는 것 이 뚜렷 하고 운행 속도 가 한 수 위 입 니 다.결론:
1.컴 파일 러 는 최적화 되 고 약자 로 인해 효율 에 영향 을 주지 않 으 며 오히려 최적화 로 효율 을 높 인 다.
2.프로그래머 의 업 무량 을 줄 이 고 실 수 를 줄인다.
3.코드 를 간소화 하고 코드 의 가 독성 을 강화 했다.
그러면 목록 해석 식 에 집합 유도 식,사전 유도 식,원 조 유도 식 이 존재 하 는 지 알 아 보 겠 습 니 다!이곳 은 더 이상 그들의 운행 속 도 를 탐구 하지 않 는 다!
집합 유도 식:
#
# 1 1000000
x={i for i in range(1,10**6+1) if i%2==0}
type(x)
# :
#{2,4,6,8...1000000}
#<class 'set'>
사전 유도 식:
#
#
dict={' 1': 1, ' ': 2, ' ': 3, ' ': 4}
dict_x={}
for i,j in dict.items():
if(j%2==0):
dict_x[i]=j
print(dict_x)
print(type(dict_x))
#{' ': 2, ' ': 4}
#<class 'dict'>
#
#
#
# zip for
x = {i : j for i, j in zip([" 1", " ", " ", " "], [1,2,3,4]) if j%2==0}
print(x)
print(type(x))
# :
#{' ': 2, ' ': 4}
#<class 'dict'>
#
#
# items()
dict={' 1': 1, ' ': 2, ' ': 3, ' ': 4}
x = {i : j for i, j in dict.items() if j%2==0}
print(x)
print(type(x))
# :
#{' ': 2, ' ': 4}
#<class 'dict'>
모듈 유도 식:
# 1 1000000
x=(i for i in range(1,10**6+1) if i%2==0)
print(x)
type(x)
# :
#<generator object <genexpr> at 0x00000241FFAB2750>
#<class 'generator'>
어!앞에서 배열 이나 집합 또는 사전 을 되 돌려 줍 니 다.이것 은 어떻게 생 성기(genexpr)를 되 돌려 줍 니까?이것 은 원 그룹 이 변 할 수 없 기 때 문 입 니 다.안에 있 는 요 소 를 방문 해 보 겠 습 니 다!
#
x=(i for i in range(1,10**6+1) if i%2==0)
for i in x:
print(i)
# :
#2
#4
#.
#.
#.
#1000000
결론:유도 식 은 많은 장점 이 있 지만 유일 하 게 부족 한 것 은 국부 변수의 가 독성 이 높 지 않다 는 것 이다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.