2016-10-14 2 views
1

여러 목록의 목록 이해를 사용하여 목록을 생성하는 Pythonic 방법을 결정할 수 없습니다. 나는 다음과 같은 기능을 구현하는 목록을 생성하기 위해 노력하고있어 :여러 목록을 사용하여 목록 작성

VBAT을 = VMAX - A + B + VMAX는 일정하지만, B와 C입니다

이 목록이 다.

vbat = [Vmax - x + y + z for x in a and y in b and z in c] 

나는 새로운 결합 된 목록을 만든 다음 새 목록에 지능형리스트를 사용하도록지도 연산자를 사용 수 있다는 것을 알고 있지만, 그것이 보인다 : 나는이 같은 읽기 쉽게 뭔가를 할 수 기대했다 작은 못생긴 읽기 어려운. 내가 일하는 것이 알고 코드는 아래와 같습니다

newlist = map(sub,map(add,b,c),a) 
vbat = [Vmax + x for x in newlist] 

는 독자들에게 우호적이에 대한 해결책이 있습니까? 미리 감사드립니다.

+1

당신은 제품을 의미합니까? 그런 다음 왼쪽에서 오른쪽으로 for 루프를 중첩합니다. 'for in y for b for y for c'. 그러나'map()'은 당신이'zip()'을 대신 찾고 있음을 암시합니다 :'x, y, z for zip (a, b, c)' –

+0

나는 어디에서 제품을 언급하는지 모르겠습니다. 나는 단순히리스트 a의 원소를 빼서리스트 b와 c의 원소를 스칼라에 더하고 새로운리스트를 반환하기를 원할 뿐이다. 아래에 제공된 답변은 내가 언급했던 작업을 수행합니다. 답장을 보내 주셔서 감사합니다. – Kevin

답변

4

zip 기능은 튜플의 순서로 여러 목록을 결합 할 수 있습니다 :

[Vmax - a_el + b_el + c_el for (a_el, b_el, c_el) in zip(a, b, c)] 
+0

이것은 완벽하게 작동했습니다. 감사합니다! – Kevin