2017-11-03 3 views
0

은 내가 콘솔에서 다음 단계를 시도 3. 파이썬에서 collections.defaultdict를 사용하는 것을 시도하고있다 :목록이 아닌 목록의 목록을 추가하는 defaultdict?

>>> from collections import defaultdict 
>>> l = [1,2,3,4,5] 
>>> dd = defaultdict(list) 
>>> dd["one"].append(l) 
>>> print(dd) 
defaultdict(<class 'list'>, {'one': [[1, 2, 3, 4, 5]]}) 

으로, 당신은 루프를 읽을 그래서 두를 필요로 그 목록의 [[1, 2, 3, 4, 5]] 즉 목록을 추가 볼 수는 변수.

[1, 2, 3, 4, 5] 같은 것을 추가하지 않는가?

내 구현에 문제가 있습니까? 아니면 defaultdict가 작동하는지 이해하고 있습니까? 미리 감사드립니다.

+2

'append' 당신이 목록에서 전달하는 객체가, 난 당신이 사용되고 싶은 생각 추가'@RNar –

+0

감사를 extend', 그것은했다. 답변에 댓글을 달 수 있습니까? – User2403

답변

3

defaultdict의 작동 방식이나 이해 방법에 문제가 있습니까?

전혀 아닙니다. 코드가 예상대로 정확하게 작동합니다. 빈 목록의 기본값이 만들어졌으며 .append이라는 목록에 단일 요소 인 [1, 2, 3, 4, 5]이 있습니다. 실제로 이것은 defaultdict과 전혀 관련이 없습니다. 목록을 포함하는 것이 완벽하게 좋습니다. 목록을 다른 목록에 추가하는 것은 특별한 작업이 아닙니다. 1 또는 'hello과 같은 다른 요소를 추가하는 것과 같습니다. 전체.append입니다. 요소입니다. 당신이 당신의 목록에 반복자의 요소를 추가하려면

대신 list.extend를 사용해야합니다

는 반복 가능한 모든 항목을 추가하여 목록을 확장합니다. a[len(a):] = iterable에 해당합니다.

dd["one"].extend(l)