다음 문장은 파이썬에서 정확히 무엇을 의미합니까?Python : "foo() for i for range (bar)"는 무엇을 의미합니까?
randrange(10**10) for i in range(100)
나는 randrange
는 난수 생성기는 것을 알고 있어요하지만 정말 명령문의 효과를 만들어 질수.
다음 문장은 파이썬에서 정확히 무엇을 의미합니까?Python : "foo() for i for range (bar)"는 무엇을 의미합니까?
randrange(10**10) for i in range(100)
나는 randrange
는 난수 생성기는 것을 알고 있어요하지만 정말 명령문의 효과를 만들어 질수.
게시 방법은 SyntaxError
입니다.
하지만 진술 내용은 []
입니다. 그런 다음 list comprehension은 100 개의 임의 숫자가 포함 된 목록을 만듭니다. 그것은이 코드에 해당 :
whatever = []
for i in range(100):
whatever.append(randrange(10**10))
코드 내부 ()
대신 []
그것이 generator expression 것, 그 즉시 상품이지만 필요에 만들어지지, 즉 반복 가능 인 경우.
자체적으로 구문 오류가 발생합니다. 괄호 안에, 그것은 generator expression입니다 :
(randrange(10**10) for i in range(100))
한 번에 randrange(10**10)
, 하나에 100 호출의 결과를 얻을 것이다 발전기를 돌려줍니다. 대괄호 안에
, 그것은 list comprehension입니다 :
[randrange(10**10) for i in range(100)]
는 randrange(10**10)
각각의 호출로 인한 100 개 번호의 목록을 반환합니다.
발전기 표현식의 장점은 명료성으로 평가되기 때문에 메모리에서 전체 목록을 구성하고 유지할 필요가 없다는 것입니다 (특히 매우 큰, 아마도 무한한 발전기와 관련이 있습니다).
그것은 [] 안에 있었으므로 그 목록을 이해할 것 같습니다. – KodeSeeker