목록을 값으로하는 사전을 만들고 싶습니다. 예를 들면 :Python 목록 사전 작성하기
{
1: ['1'],
2: ['1','2'],
3: ['2']
}
내가 할 경우 : d는 [...] 목록이 아니기 때문에
d = dict()
a = ['1', '2']
for i in a:
for j in range(int(i), int(i) + 2):
d[j].append(i)
내가하는 KeyError를 얻을. 이 경우 사전을 초기화하기 위해 a를 할당 한 후 다음 코드를 추가 할 수 있습니다.
for x in range(1, 4):
d[x] = list()
더 좋은 방법이 있나요? 두 번째로 for
루프가 될 때까지 필자가 필요로하는 키를 모를 것이라고 말합니다. 예를 들어 :
class relation:
scope_list = list()
...
d = dict()
for relation in relation_list:
for scope_item in relation.scope_list:
d[scope_item].append(relation)
대안은 다음
if d.has_key(scope_item):
d[scope_item].append(relation)
else:
d[scope_item] = [relation,]
이 문제를 처리하는 가장 좋은 방법은 무엇입니까와
d[scope_item].append(relation)
를 대체 할 것인가? 이상적으로, appending은 "그냥 작동"합니다. 목록을 처음 만들 때 모든 키를 모를지라도 빈 목록 사전을 표시 할 수있는 방법이 있습니까?
'collections' 모듈 아래의 다른 사전도'collections.OrderedDict'처럼이 방법으로 작동합니다. – txsaw1
오. 이것은 위대합니다. 그리고 '= []'로 초기화 할 필요는 없습니다. 좋은 물건! –