2013-02-21 2 views
0
for row in rows: 
    a, b, c = row 

은 좋은 그러나파이썬 목록에서 개행을 어떻게 포함합니까?

for row in rows: 
    alpha, beta, charlie, delta, echo, foxtrot, gamma, horseshoe, indigo, jimmy, killshot = row 

은 매우 좋은하지 않습니다. 파이썬은 일반적으로 쉼표 뒤에 개행을 지원하는 것이 좋지만이 구문의 구문을 이해할 수는 없습니다. 이런 식으로 뭔가 좋은 것 :

for row in rows: 
    alpha, 
    beta, 
    charlie, 
    delta, 
    echo, 
    foxtrot, 
    gamma, 
    horseshoe, 
    indigo, 
    jimmy, 
    killshot = row 

긴 줄이 반 PEP 8 있기 때문에이 문제를 처리 할 수있는 PEP 8 방법은 무엇입니까?

+0

이 값이 많은 경우 먼저 언팩을하지 않는 것이 좋습니다. 목록은 일련의 데이터를 저장하는 매우 자연스러운 방법입니다. 왜 그런 식으로 편차가 있습니까? 서로 다른 항목을 참조 할 수있는 명확한 방법이 필요하다면 몇 가지 상수를 정의하고 목록을 다음과 같이 색인화하십시오 :'x = row [ALPHA]'('ALPHA = 0'을 정의했다고 가정) –

+0

목록은 집합입니다 SQL 쿼리 결과. 나는 코드의 값으로 작업 할 수 있도록 이들을 풀고있다. 위와 같이 적절히 명명 된 변수에 인덱스를 사용하여 인덱스를 사용하는 것보다 인덱스를 상수로 사용하는 경우에도 해당 변수를 언팩하는 것이 더 깔끔한가요? –

+0

어, 그게 내가 선호하는 것 같아. 또 다른 옵션은'namedtuple'을 사용하는 것입니다. –

답변

3

괄호를 사용 : 개인적으로

for row in rows: 
    (alpha, 
    beta, 
    charlie, 
    delta, 
    echo, 
    foxtrot, 
    gamma, 
    horseshoe, 
    indigo, 
    jimmy, 
    killshot) = row 

, 아마 한 줄에 하나 개 이상의 항목을 사용하십시오 (선이 긴 얻을, 또는 어디에 위반 항목의 의미에서 논리적 변화가있을 경우)하지만, 당신이 일관성이있는 한 나는 위의 스타일도 괜찮을 것이라고 생각합니다.

+0

그건 당황 스럽네. 감사! –

관련 문제