2013-04-19 3 views
2

두 목록 목록을 하나로 병합하는 데 문제가 있습니다. 나는 간단한 해결책이 있다고 생각하지만 몇 시간 동안 붙어있다. 목록목록 행렬 목록에 일부 열 추가

내 두 목록은 예를 들면 다음과 같습니다

a=[['1','2'],['3','4']] 
b=[['5','6'],['7','8']] 

그리고 내가 무엇을 얻을려고하는 것입니다 :

c=[['1','2','5','6'],['3','4','7','8']] 

하지만리스트가 얼마나 많은 행과 열 모른다.

은 내가 zip 명령을 사용하려고하지만, 같은 것을 제작 :

[(['1','2'],['5','6']),(['3','4'],['7','8'])] 
이 문제에 어떤 도움을 아주 많이

감사합니다!

어쩌면 How can I add an additional row and column to an array?과 같은 것이 좋겠지 만 좀 더 간단한 해결책이 있다고 생각합니다.

L = (a, b, ...) 
[sum(el, []) for el in zip(*L)] 
+0

특정 프로그래밍 언어는 무엇입니까? – NINCOMPOOP

+0

'(map append a b)' – leppie

+0

오, 죄송합니다. 저는 파이썬으로 글을 쓰고 있습니다. 빠른 답변 주셔서 감사합니다! @leppie 정확한 서식을 알려주십시오. 나는 그것을 작동시킬 수 없었다. –

답변

2
>>> a=[['1','2'],['3','4']] 
>>> b=[['5','6'],['7','8']] 
>>> [x + y for x, y in zip(a, b)] 
[['1', '2', '5', '6'], ['3', '4', '7', '8']] 
+0

... 와우 그것은 그렇게 간단했습니다. 여기 나는이 모든 미친 기능들을 사용하고 있었고 당신은 이것과 함께 나타납니다. +1. – TerryA

+0

대단히 고마워요. –

+0

@MatthiasLa 걱정 마세요. – jamylak

0
[sum(ai_bi, []) for ai_bi in zip(a, b)] 

.

+0

왜 '합계'를 부를까요? – leppie

+0

예. 2 개의 항목을 추가하는 경우 예'+'(여기에 합계가 필요 없음) – jamylak

+0

크기가 커야합니다. :) –

-1

당신의 목록이 같은 아이폰에있는 경우 : 비록 매우 우아

c = [] 
for idx in range(len(a)): 
    c.append(a[idx]+b[idx]) 

되지 않음을 목록의 N 목록에 확장

+0

문제는 많은 행과 열이있는 큰 목록을 처리한다는 것입니다. 그래서 나는 모든 요소를 ​​다룰 필요가있는 이런 종류의 방법을 사용할 수 없습니다. 그러나 어쨌든 고마워. –

+0

루프에 던지면? –

+0

범위 내 (len (a))에 대해 b = [[ '3'], [ '4']] c = [] 에 대해 'a = [['1 '], ['2 ') : c [i] = [a [i] + b [i]] ' 하지만'List Assigning Index가 범위를 벗어납니다. ' –