나는 초급 파이썬 질문이 있습니다. 목록에서 나온 for 루프의 결과를 가져 와서 목록으로 다시 되돌릴 수 있는지 궁금합니다. 이런 식으로 보이는 코드가 있습니다.파이썬 For 루프 목록에
이 목록의 결과는 내 데이터베이스에 테이블을 만드는 데 사용할 수있는 것이기를 바랍니다. 저는 파이썬 2.7을 윈도우 7에서 사용하고 있습니다. 파이썬의 문서를 훑어보고 스택 교환에 관한 질문을 살펴 보았습니다. 아직도 혼란 스럽습니다.
나는 초급 파이썬 질문이 있습니다. 목록에서 나온 for 루프의 결과를 가져 와서 목록으로 다시 되돌릴 수 있는지 궁금합니다. 이런 식으로 보이는 코드가 있습니다.파이썬 For 루프 목록에
이 목록의 결과는 내 데이터베이스에 테이블을 만드는 데 사용할 수있는 것이기를 바랍니다. 저는 파이썬 2.7을 윈도우 7에서 사용하고 있습니다. 파이썬의 문서를 훑어보고 스택 교환에 관한 질문을 살펴 보았습니다. 아직도 혼란 스럽습니다.
확실히.
그냥 print
분명히 목록에 추가되지 않습니다. 그러나 목록에서 append
메서드를 호출하면 자습서의 Lists 섹션에 설명되어 있습니다. 예를 들어 :
mynewlist = []
for a in mylist:
result = q.myfunction(a)
print q, a
mynewlist.append(result)
는 새 목록을 생성 할 일은 원하는 모든 경우, 다른 부작용은 list comprehension는 더 간단하지 않습니다. 이 코드 :
mynewlist = [q.myfunction(a) for a in mylist]
... print
과 동일합니다. 당신은 당신이 다음과 같은 작업을 수행 할 수 루프를 사용하여 사용하는 경우
이게 원하는가요?
[q.myfunction(a) for a in mylist]
목록 이해라고합니다.
:
results = []
for a in mylist:
result = q.myfunction(a)
results.append(result)
그러나, 파이썬에서 이런 일을 할 수있는 관용적 방법은 지능형리스트로 알려진 것을 사용하는 것입니다. 목록 내포는 다른 목록의 요소에서 새 목록을 생성하는 방법입니다. 예를 들어, 다음은 for 루프와 완전히 동일한 효과를가집니다.
results = [q.myfunction(a) for a in mylist]
for 루프는 목록 이해와 동일한 기능을 수행하지 않습니다. 루프는'(q, a)'를 수집하고 이해는'(결과, a)'를 수집합니다. – Dunes
@Dunes : 아, 좋은 지적이야. 분명히'(q, a)'는'q.myfunction'이 부작용에 대해서만 호출되지 않는 한 매우 유용하지 않습니다. (그 경우 왜 결과를'result'에 저장합니까?); 편집 됨. – abarnert