Python 시퀀스 의 유도 식 구현 코드
comprehensions
(해석 식 이 라 고도 함)은 Python 의 독특한 특성 이다.유도 식 은 하나의 데이터 시퀀스 에서 다른 새로운 데이터 시퀀스(구조 체)를 구축 할 수 있다.
Python 에는 모두 세 가지 유도 가 있 는데 Python 2 와 3 에서 모두 지원 합 니 다.
역할:하나의 표현 식 으로 규칙 적 인 목록 을 만 들 거나 규칙 적 인 목록 을 제어 합 니 다.
목록 유도 식 은 목록 생 성식 이 라 고도 부른다.
(1)빠 른 체험
필요:0-10 목록 을 만 듭 니 다.
while
순환 실현
# 1.
list1 = []
# 2. , list1
i = 0
while i < 10:
list1.append(i)
i += 1
# :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1)
for
순환 실현
list1 = []
for i in range(10):
list1.append(i)
# :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1)
목록 유도 식 실현
"""
, []
。
, for ,
for , for 。
for , i 。
"""
# :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list1 = [i for i in range(10)]
print(list1)
목록 유도 식 은 코드 를 간소화 하고 규칙 적 인 목록 을 만 들 거나 제어 하 는 것 입 니 다.(2)if 가 있 는 목록 유도 식
필요:0-10 짝수 목록 만 들 기
방법 1:
range()
보폭 을 통 해 실현
# :[0, 2, 4, 6, 8]
list1 = [i for i in range(0, 10, 2)]
print(list1)
방법 2:if
을 통 해 실현
# 1. for if
list2 = []
for i in range(10):
if i % 2 == 0:
list2.append(i)
# :[0, 2, 4, 6, 8]
print(list2)
# 2. for if if
list1 = [i for i in range(10) if i % 2 == 0]
# :[0, 2, 4, 6, 8]
print(list1)
(3)여러 for 순환 실현 목록 유도 식필요,생 성 목록 은 다음 과 같 습 니 다:
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
코드 는 다음 과 같 습 니 다:
list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)
#
# for for
# [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
# 1 : 1 2 range(1,3)
# 2 :0 1 2 range(3)
list1 = []
for i in range(1, 3):
for j in range(3):
# : ,
#
list1.append((i, j))
print(list1)
# for
list2 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list2)
2.사전 유도 식생각:다음 두 개의 목록 이 있다 면:
list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'man']
어떻게 빨리 사전 으로 통합 합 니까?답:
for
순환 으로 연결 하면 실현 할 수 있 지만 우 리 는 개작for
순환 을 통 해 사전 유도 식 으로 바 꿀 수 있다.사전 유도 식 역할:빠 른 통합 목록 은 사전 이나 사전 의 대상 데 이 터 를 추출 합 니 다.
아래 의 예 시 를 통 해 사전 유도 식 을 신속하게 체험 하 다.
(1)사전 만 들 기
사전
key
은 1-5 숫자 이 고value
은 이 숫자의 2 차원 이다.
# dict1 = {k: v for i in range(1, 5)}
dict1 = {i: i**2 for i in range(1, 5)}
print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16}
{i:i**2}
는 하나의 사전 을 나타 내 는데key
는i
이 고value
는i**2
이다.마지막 으로 사전 을 되 돌려 야 하기 때문에 오른쪽 표현 식 의 가장 바깥쪽 은 큰 괄호 입 니 다.
(2)두 목록 을 하나의 사전 으로 합 친다.
list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)
# :{'name': 'Tom', 'age': 20, 'gender': 'man'}
요약:만약 두 목록 의 데이터 개수 가 같다 면
len
어떤 목록 의 길 이 를 통계 해도 된다.만약 두 목록 데이터 의 개수 가 다르다 면
len
통계 데이터 가 많은 목록 데이터 의 개수 가 틀 릴 수 있 습 니 다.len
통계 데이터 가 적은 목록 데이터 개 수 는 틀 리 지 않 습 니 다.(이 점 은 반드시 주의해 야 한다)(3)사전 에서 대상 데이터 추출
counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# : 200
count1 = {key: value for key, value in counts.items() if value >= 200}
print(count1) # {'MBP': 268, 'DELL': 201}
3.집합 유도 식집합 유도 식 은 위의 두 유도 식 보다 사용 빈도 가 매우 적다.
수요:집합 을 만 듭 니 다.데 이 터 는 아래 목록 의 2 차원 입 니 다.
list1 = [1, 1, 2]
코드 는 다음 과 같 습 니 다:
list1 = [1, 1, 2]
set1 = {i ** 2 for i in list1}
print(set1) # {1, 4}
주의:집합 은 데이터 제거 기능 이 있 습 니 다.4.추가 알림
Python 에서 시퀀스 에 관 한 문 서 를 어떻게 봅 니까?
Common Sequence Operations
아래 목록 은 서열 로 통용 된다.Mutable Sequence Types
아래 의 목록 은 가 변 서열 로 사용 할 수 있 는 방법 이나 함수 입 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.