python 목록 유도 식 입문 학습 분석

이 글 은 주로 python 목록 유도 식 입문 학습 해석 을 소개 합 니 다.글 에서 예시 코드 를 통 해 매우 상세 하 게 소개 되 어 여러분 의 학습 이나 업무 에 대해 어느 정도 참고 학습 가 치 를 가지 고 있 으 므 로 필요 한 친 구 는 참고 하 셔 도 됩 니 다.
유도 식
유도 식 은 하나 또는 여러 개의 교체 기 에서 데이터 형식 을 신속 하고 간결 하 게 만 드 는 방법 으로 순환 과 조건 판단 을 결합 시 켜 문법 이 지루 한 코드 를 피하 고 코드 운행 효율 을 높 인 다.유도 식 을 능숙 하 게 사용 할 수 있다 는 것 은 python 초보 자의 수준 을 뛰 어 넘 었 다 는 것 을 간접 적 으로 설명 할 수 있다.
잘못 을 보고 하 다
조건 부 유도 식
1.문법

'''
value1:       condition  ,  value1 ;           ,  value2 ;
condition:     
Value2:       condition  ,  value1 ;           ,  value2 ;
'''
value1 if condition else Value2
2.실전 연습
만약 이러한 필요 가 있다 면:하나의 숫자 가 홀수 인지 짝수 인지 판단 합 니까?

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:    
@Blog(      ): shuopython.com
@WeChat Official Account(     ):  python
@Github:www.github.com
 
@File:python_list.py
@Time:2019/9/30 20:45
 
@Motto:         ,         ,                !
"""
 
#     
x = 10
if x%2 == 0:
  print("   :x   ")
else:
  print("   :x   ")
 
#    
x = 15
print("    :x   ") if x%2 == 0 else print("    :x   ")
출력 결과:
초보 자:x 는 짝수
늙 은 기사:x 는 홀수
위의 코드 를 살 펴 보면 알 수 있 듯 이 선수 1(초보 자)은 모두 5 줄 의 코드 를 차지 하고 선수 2(오래된 운전 자)는 같은 기능 을 완성 하 는 데 두 줄 만 필요 하 다.이것 이 바로 성 가 비 이다.흔히 이것 이 직장 에서 업무 능력/승진 과 임금 인상 을 감별 하 는 세부 사항 이다.
리스트 유도 식
목록 유도 식 은 조건 부 유도 식 과 순환 을 함께 사용 하고 목록 을 되 돌려 주 며 전체 표현 식 은[]안에 있어 야 합 니 다.반환 값 도 목록 이기 때 문 입 니 다.
1.문법

'''
   :
  exp1: for   ,  x         condition(        ),  exp1;            
  x:for     
  data:    (  :  /  /    )
  condition:     
'''
 
[exp1 for x in data if condition]
 
'''
   :
  exp1: for   ,  x         condition(        ),  exp1;           exp2
  condition:     
  exp2: for   ,  x         condition(        ),  exp1;           exp2
  x:for     
  data:   (  :  /  /    )
  
'''
 
[exp1 if condition else exp2 for x in data]
2.실전 연습
수요 1:0~20 의 모든 짝수 를 얻 고 10 을 곱 하고 모든 계산 후의 결 과 를 되 돌려 줍 니 다.예제 코드 는 다음 과 같다.(목록 유도 식 문법 을 사용 하여 실현)

'''
1.     0~20,  20,    range(0,21)
2.x*10         exp1
3.x%2 == 0              condition
4.range(0,21)         data(  )
'''
 
list1 = [x*10 for x in range(0,21) if x%2 == 0]
print(list1)
print(type(list1))
출력 결과:

[0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
<class 'list'>
수요 2:0~20 의 짝수 곱 하기 10,홀수 곱 하기 100,그리고 모든 계산 후의 결 과 를 되 돌려 줍 니 다.예제 코드 는 다음 과 같다.(목록 유도 식 문법 2 실현 사용)

'''
1.     0~20,  20,    range(0,21)
2.x*10         exp1
3.x*100         exp2
4.x%2 == 0              condition
5.range(0,21)         data(  )
'''
 
list2 = [x*10 if x%2 == 0 else x*100 for x in range(0,21) ]
print(list2)
print(type(list2))
출력 결과:

[0, 100, 20, 300, 40, 500, 60, 700, 80, 900, 100, 1100, 120, 1300, 140, 1500, 160, 1700, 180, 1900, 200]
<class 'list'>
3.효율 대비
어린이 신발 이 궁금 할 수도 있 습 니 다.제 가 분명히 for 순환 이 가능 한 기능 인 데 털 을 위해 이 새 를 유도 해 야 합 니까?
목록 유도 식 의 효율 은 for 순환 보다 훨씬 높 습 니 다.print("hello World")를 실행 할 수 있 습 니 다.cpu 에 대해 서 는 0.0002 초 만 걸 립 니 다.차 이 를 느끼 지 못 할 수도 있 습 니 다.hello World 를 1 억 번 출력 해 야 한다 면?종종 세부 적 으로 성 패 를 느낀다!
만약 에 하나의 수요 가 있다 면 0~10000000(1 억)이내 의 모든 정 수 를 목록 에 저장 하고 목록 유도 식 과 for 순환 소모 상황 을 비교 해 보 세 요.

import time #   time  ,          
 
#    10000000       
total_num = 10000000
 
#       
start_time = time.time()
list1 = [x for x in range(0,total_num)] #      
end_time = time.time()
print("         :{} ".format(end_time-start_time))
 
#    for  
start_time = time.time()
list2 = list()
for x in range(0,total_num): # for  
  list2.append(x)
end_time = time.time()
print("    for    :{} ".format(end_time-start_time))
출력 결과:
사용 목록 유도 시간:0.5455152984338 초
노 멀 for 순환 사용 시간:1.2068688995361 초
출력 결 과 는 매우 뚜렷 하고 통용 되 는 기능 을 실현 하 며 목록 유도 식 의 효율 은 일반 for 순환 보다 배가 높다.
마지막 으로 따뜻 한 알림:테스트 는 순환 횟수 를 좀 줄 여 주세요.처음에 조심 하지 않 아 몇 바퀴 더 돌 았 기 때문에 컴퓨터 가 다운 되 었 습 니 다!
중점 총화
1.목록 유도 식 으로 쓸 때 모든 표현 식 은[]내부 에 있어 야 합 니 다.반환 값 은 목록 list 이기 때 문 입 니 다.
2.리스트 유도 식 은 python 개발 학습 의 지식 점 입 니 다.많이 연락 하면 능숙 해 집 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기