내가 찾을 수 있는 유일한 방법은 '2' 는 파이썬, 연결할 수 있는 열거합니다 리스트리에스테드 수정되므로 첫 번째 목록. 그 결과 수정 없이 유지됩니까 연결 반환하는 함수를 그 인수만?
>>> import itertools
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = itertools.chain(a, b)
이 항목의 목록을 만들 수 있는 발생기입니다 결합됨 디스크입니다. diskid 새로운 목록을 작성해야 할 수 있지만, 계속 사용할 수 없는 것처럼 'c' 의 연결은 두 목록:
>>> for i in c:
... print i
1
2
3
4
5
6
이 경우 매우 큰 문제가 열거합니다 및 효율성 및 기타 방법을 알고 있다 '다음' 에서 아르투르스 모듈에서는 매우 유용합니다.
참고로 이 예제는 c, d # 39 의 항목 '위로' 도왔으매 you& 전에 먼저 재사용합니다 레이니시알즈 필요가 있습니다. 물론 전체 목록을 만드는 데 사용할 수 있습니다 '그냥' 목록 (c) 의 새로운 목록을 만들 수 있지만, 메모리.
[1]: http://docs.python.org/library/itertools.html # 아르투로슈자클랭
'concatenated_list list_1 list_2' = +
Give it a '시작', '숨' 을 사용할 수도 있습니다 경우 인수:
>>> list1, list2, list3 = [1,2,3], ['a','b','c'], [7,8,9]
>>> all_lists = sum([list1, list2, list3], [])
>>> all_lists
[1, 2, 3, 'a', 'b', 'c', 7, 8, 9]
이 작품은 일반적으로 있는 모든 것에 대한 '+' 연산자:
>>> sum([(1,2), (1,), ()], ())
(1, 2, 1)
>>> sum([Counter('123'), Counter('234'), Counter('345')], Counter())
Counter({'1':1, '2':2, '3':3, '4':2, '5':1})
>>> sum([True, True, False], False)
2
함께 아니오표 idfsysobject. 문자열.
>>> sum(['123', '345', '567'], '')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]
두 개 이상의 연결할 경우 열거합니다.
import operator
list1, list2, list3 = [1,2,3], ['a','b','c'], [7,8,9]
reduce(operator.add, [list1, list2, list3])
# or with an existing list
all_lists = [list1, list2, list3]
reduce(operator.add, all_lists)
실제로, 이 t # 39 doesn& 절감할 수 있을 경우 언제든지 좋은 수를 가변적입니다 (intermediate 여전히 열거합니다 창조하) 이지만, 예를 들어, '* 플랫화할 열거합니다 args'.