2013-01-04 2 views
1
some_list = [[1, 2], [3, 4], [5, 6]] 

(이 경우에 [10, 11]) 공통리스트 (리스트 내의) 개별 목록 연장목록에서 파이썬으로 목록을 확장하려면 어떻게해야합니까?

some_list = [[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]] 

된다.

나는 이것을 쉽게 수행하고 싶다.

+0

새로운 내 대답을 편집 :

귀하의 경우
class Apply(tuple): "Create a container that can run a method from its contents." def __getattr__(self, name): "Get a virtual method to map and apply to the contents." return self.__Method(self, name) class __Method: "Provide a virtual method that can be called on the array." def __init__(self, array, name): "Initialize the method with array and method name." self.__array = array self.__name = name def __call__(self, *args, **kwargs): "Execute method on contents with provided arguments." name, error, buffer = self.__name, False, [] for item in self.__array: attr = getattr(item, name) try: data = attr(*args, **kwargs) except Exception as problem: error = problem else: if not error: buffer.append(data) if error: raise error return tuple(buffer) 

, 당신은 당신의 주요 컨테이너에 목록의 각을 확장하기 위해 다음과 같은 기록 할 것 : 결과를 보내고은 다음 코드로 오히려 쉽다 방법, 당신이 좋아할 수도 있습니다 * 나는 또한 python 학습자 * –

+0

그 대답과 같은 Volatility의 의견에 비슷합니다. – elwc

+0

지도를 사용하고 있습니다.이 코드는 map()을 사용하는 첫 번째 코드입니다 –

답변

5

구조에 대한 이해력을 나열하십시오!

some_list = [l + [10, 11] for l in some_list] 

당신이 목록에서 요소를 변환 할

는 지능형리스트는 일반적으로 답변입니다.

+0

for 루프 없이는 할 수있는 방법이 없습니까? 'some_list [:]. extends ([10,11])'와 같은 것을 생각하고있었습니다. 물론 작동하지 않았습니다. – elwc

+0

당신이 원한다면'some_list = map (lambda x : x.extend ([10, 11]), some_list)'을 할 수 있지만 목록 이해력은 훨씬 쉽고 (읽기 쉽다) – Volatility

+0

그건 정확히 파이썬 튜토리얼에서 말한 것 xD – elwc

3
some_list = [l + [10, 11] for l in some_list] 
1

지도 기술 : 다른

>>> some_list = [[1, 2], [3, 4], [5, 6]] 
>>> some_list = map(lambda i : i + [10,11], some_list) 
>>> some_list 
[[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]] 

:

>>> some_list = [[1, 2], [3, 4], [5, 6]] 
>>> for i in some_list: 
...  i.extend([10,11]) 
... 
>>> some_list 
[[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]] 

사용 슬라이스는 :

>>> some_list = [[1, 2], [3, 4], [5, 6]] 
>>> for i in some_list: 
...  i[len(i):] = [10,11] 
... 
>>> some_list 
[[1, 2, 10, 11], [3, 4, 10, 11], [5, 6, 10, 11]] 
0

는 컨테이너 및 GETT의 각 항목에 대한 방법을 실행

some_list = [[1, 2], [3, 4], [5, 6]] 
Apply(some_list).extend([10, 11]) 
print(some_list)