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 개발 학습 의 지식 점 입 니 다.많이 연락 하면 능숙 해 집 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.