목록 유도list(x* x for x in range(10)

4161 단어
목록 유도
    :[         (  x)  for   x in range(n)     (if) for   x in range(n)]
           :1.      for  
            2.               for    for
            3.                
------------------------------------------------------------------------------------- :
for x in range(n): if :

 
목록 유도는 수학에서의 집합 유도와 유사하게 다른 목록에서 목록을 만드는 방식이다.리스트 유도의 작업 원리는 매우 간단하고 for 순환과 약간 유사하다.
>>> [x * x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

이 목록은 range(10)내 각 값의 제곱으로 구성되어 있는데 매우 간단하죠?만약 3으로 나누어질 수 있는 제곱값만 인쇄하고 싶다면 어떻게 해야 합니까?모형 연산자를 사용할 수 있습니다: y가 3으로 나누어지면 y % 3는 0으로 되돌아갑니다x가 3으로 나누어질 때만 x*x가 3으로 나누어질 수 있음을 주의하십시오.)이러한 기능을 실현하기 위해 목록 유도에 if 문장을 추가할 수 있다.
>>> [x*x for x in range(10) if x % 3 == 0]
[0, 9, 36, 81]
'''
   :[ ( x) for x in range(n) (if) for x in range(n)]
        :1. for
            2. for for
            3.
'''

더 많은 for 부분을 추가할 수 있습니다.
>>> [(x, y) for x in range(3) for y in range(3)]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

위 절차에 따라 검증을 다시 작성할 수 있습니다.
>>> for x in range(3):
...            for y in range(3):
...                    (x,y)
...
(0,0)
(0,1)
(0,2)
(1,0)
(1,1)
(1,2)
(2,0)
(2,1)
(2,2)

우리의 검증이 옳다는 것이 분명하다.그것들의 가장 원시적인 모습은 이 모양이어야 한다. 그들은 하나의 모듈 데이터로 돌아가고, 출력할 때 흩어져 있기 때문에 우리는 그것들을 모아서 목록에 넣을 수 있다.조작 방법은 목록 []에 직접 이 코드를 쓸 수 있고, 또 하나는list()를 사용하여 목록을 만드는 것이다.다음과 같습니다.
>>> list_number = list((x,y) for x in range(3) for y in range(3))
>>> list_number
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

 
전재 대상:https://www.cnblogs.com/iBoundary/p/11241045.html

좋은 웹페이지 즐겨찾기