바깥 쪽 범위 변수를 사용할 때와 마찬가지로 첫 번째 요소를 하나의 var로, 다른 var를 같은 루프로 뒤로 가져 오는 방법은 무엇입니까? 두 바르Python에서 양방향 for 루프를 어떻게 우아하게 생성합니까?
1
A
답변
3
을 반환 열거 비슷한 기능이 있나요 그럴 수 zip
하나 반복자와 역 :
20 29
21 28
22 27
23 26
24 25
25 24
26 23
27 22
28 21
29 20
하지만, 당신이 강제로 :에
z = range(20,30)
for x,y in zip(z,reversed(z)):
print(x,y)
결과 반복으로 list
reverse
시퀀스를 기대하기 때문에
TypeError: argument to reversed() must be a sequence
list
, tuple
또는 range
은 정상입니다.
g = (x for x in somefunc() if x > 0)
lst = list(g)
for x,y in zip(lst, reversed(lst)):
...
+0
올바르게 사용 된 발전기가이 예제에서 문제를 일으키는 경우를 보여 줄 수 있습니까? –
+0
실제로 발전기에서 전혀 작동하지 않습니다 목록에 넣지 않는 한. 내 게시물을 편집했습니다. –
두 개의 별도 'for'루프를 실행하지 않고 한 번만 카운트하고 하나만 카운트 다운하지 않는 이유는 무엇입니까? –
그런 다음 동시에 두 개의 vars에 액세스 할 수 없으며 복잡성이 두 배가됩니다. –
동시에 반비례하는 두 개의 변수에 액세스해야하는 경우를 생각할 수 없습니다. . 하지만 '중간 점'이 '0'이라고 가정하면 'x ='에 루프 내부에'y = -x'와 같은 것을 설정할 수 있습니다. 그런 다음 동시에 액세스 할 수 있고 반비례 할 수 있습니다 (한 줄만 추가하면 됨). –