우 리 는 왜 Python 의 순환 사용 을 줄 여야 합 니까?

4473 단어 python순환 하 다.
머리말
Python 은 우리 에 게 다양한 인 코딩 방식 을 제공 합 니 다.
어느 정도 포용 성 이 있다.
모든 언어 에서 온 사람 은 Python 을 만 들 수 있 습 니 다.
그러나 한 가지 언어 를 쓰 는 것 을 배 우 는 것 과 가장 좋 은 방식 으로 한 가지 언어 를 쓰 는 것 은 서로 다른 일이 다.
이 일련의 Python Shorts 이라는 글 에서 저 는 Python 이 제공 하 는 간단 하지만 매우 유용 한 구조,작은 기교 와 제 가 데이터 과학 업무 에서 만난 사례 를 논술 할 것 입 니 다.
이 글 에서 나 는 Python 의 for 순환 과 어떻게 사용 하 는 지 에 대해 토론 할 것 이다.
for 순환 을 쓰 는 세 가지 방법:
간단 한 예 로 설명 하 겠 습 니 다.
목록 의 제곱 합 을 얻 고 싶다 고 가정 하 세 요.
기계 학습 에서 우리 가 n 차원 상황 에서 두 점 사이 의 거 리 를 계산 하고 싶 을 때 우 리 는 모두 이 문제 에 직면 하 게 된다.
너 는 순환 을 사용 해서 이 점 을 쉽게 할 수 있다.
사실 나 는 너 에 게 내 가 본 똑 같은 임 무 를 완성 하 는 세 가지 방식 을 보 여주 고 네가 생각 하 는 가장 좋 은 방법 을 선택 하 게 하고 싶다.

x = [1,3,5,7,9]
sum_squared = 0

for i in range(len(x)):
  sum_squared+=x[i]**2
내 가 Python 코드 에서 상기 코드 를 보 았 을 때,나 는 이 사람 이 C 나 자바 배경 을 가지 고 있다 는 것 을 알 았 다.
같은 일 을 완성 하고 더 Pythonic 의 방식 은:

x = [1,3,5,7,9]
sum_squared = 0

for y in x:
  sum_squared+=y**2
이렇게 하면 더욱 좋다.
나 는 이 목록 을 색인 하지 않 았 다.그리고 제 코드 는 더욱 가 독성 이 있 습 니 다.
하지만 더 Pythonic 방식 한 줄 로 완성 할 수 있 습 니 다.

x = [1,3,5,7,9]
sum_squared = sum([y**2 for y in x])
이런 방법 을 List Comprehension 이 라 고 부 르 는데 이것 은 아마도 내 가 Python 을 사랑 하 게 된 원인 중의 하나 일 것 이다.
너 도 List Comprehension 에서 if 를 사용 할 수 있다.
우리 가 짝수 의 제곱 수 목록 만 원한 다 고 가정 하 자.

x = [1,2,3,4,5,6,7,8,9]
even_squared = [y**2 for y in x if y%2==0]
#     :
[4,16,36,64]
if-else?
만약 우리 가 짝수 의 제곱 수 와 홀수 의 입방 수 를 동시에 원한 다 면?

x = [1,2,3,4,5,6,7,8,9]
squared_cubed = [y**2 if y%2==0 else y**3 for y in x]
#     :
[1, 4, 27, 16, 125, 36, 343, 64, 729]
너무 좋아요!

따라서 대체적으로 이 구체 적 인 준칙 을 따른다.for 문 구 를 쓰 고 싶 을 때마다 다음 과 같은 질문 을 해 야 한다.
  • 안 해도 돼 요?더 파 이 썬 스타일.
  • List Comprehension 으로 할 수 있 나 요?만약 그렇다면,그것 을 사용 해라.
  • 색인 배열 을 하지 않 아 도 됩 니까?그렇지 않 으 면 enumerate 를 사용 하 는 것 을 고려 합 니 다.
  • enumerate 가 뭐 예요?
    때때로 우 리 는 배열 의 색인 도 필요 하고 배열 의 값 도 필요 하 다.
    이런 상황 에서 나 는 색인 목록 보 다 는 enumerate 를 더 좋아한다.
    
    L = ['blue', 'yellow', 'orange']
    for i, val in enumerate(L):
      print("index is %d and value is %s" % (i, val))
    #     :
    index is 0 and value is blue
    index is 1 and value is yellow
    index is 2 and value is orange
    규칙 이 있 습 니 다.
    목록 을 찾 지 않 습 니 다.사용 하지 않 을 수 있다 면.
    Dictionary Comprehension 사용 시도
    Dictionary Comprehension 을 사용 해 볼 수도 있 습 니 다.Python 에서 상대 적 으로 새로운 보충 이 고 문법 은 List Comprehension 과 비슷 합 니 다.
    예 를 들 어 설명 하 겠 습 니 다.x 의 모든 값 에 dictionary(key:제곱 값)를 가 져 오고 싶 습 니 다.
    
    x = [1,2,3,4,5,6,7,8,9]
    {k:k**2 for k in x}
    #     :
    {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
    짝수 만 얻 고 싶 은 dictionary 는 어떻게 합 니까?
    
    x = [1,2,3,4,5,6,7,8,9]
    {k:k**2 for k in x if x%2==0}
    #     :
    {2: 4, 4: 16, 6: 36, 8: 64}
    짝수 의 제곱 과 홀수 의 입방 을 동시에 얻 으 려 면 어떻게 합 니까?
    
    x = [1,2,3,4,5,6,7,8,9]
    {k:k**2 if k%2==0 else k**3 for k in x}
    #     :
    {1: 1, 2: 4, 3: 27, 4: 16, 5: 125, 6: 36, 7: 343, 8: 64, 9: 729}
    결론.
    마지막 으로 내 가 말 하고 자 하 는 것 은 다른 언어 에서 얻 은 지식 을 파 이 썬 으로 옮 기기 쉬 워 보이 지만 계속 이렇게 하면 파 이 썬 의 아름다움 을 이해 할 수 없다 는 것 이다.우리 가 Python 방식 으로 그것 을 사용 할 때,그것 의 기능 은 훨씬 강하 고,또한 훨씬 재미 있어 야 한다.
    따라서 for 순환 이 필요 할 때 List Comprehensions 와 Dictionary Comprehensions 를 사용 합 니 다.배열 색인 이 필요 할 때 enumerate 를 사용 합 니 다.
    전염병 과 같은 순환 을 피하 다
    장기 적 으로 볼 때,당신 의 코드 는 더욱 읽 을 수 있 고 유지 할 수 있 을 것 입 니 다.
    영어 원문 주소:Minimize for loop usage in Python
    원작 자:Rahul Agarwal
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기