2014-08-28 3 views
-2

키와 값 쌍을 가진 사전이 있습니다. 값은 목록에 저장됩니다. 하지만 난 그 값으로 .Append 수 있도록 내가파이썬 사전 - 목록 중첩

>>>myDict = {'Numbers':[]} 
>>>myDict['Numbers'[1].append(user_inputs) 

가 작동하지 않는 것이 오류를 반환 할 수있을 것 어차피 빈 목록을 유지하고있다. myDict의 목록을 참조하여 값을 추가 할 수있는 방법은 무엇입니까?

또한 목록 내에 사전을 포함 할 수 있으며 내부에 다른 목록을 가질 수 있습니까? 그렇다면? 문법은 무엇입니까? 아니면 다른 방법을 추천 할 수 있습니까?

>>>myDict2 = {'Names': [{'first name':[],'Second name':[]}]} 

두 번째 중첩 목록을 튜플로 변경합니까 ?? PYTHON 2.7에 보관하십시오.

+1

:

형식은 같은 것입니다. 파이썬 3을 배우면 무수히 많은 개선이 이루어 지므로 문제가 줄어들 것입니다. – simonzack

+0

네, 그렇습니다. 나는 ive가 들었던 것처럼 "유일하게 안정적인 버전"이기 때문에 2.7을 사용하는 것이 좋습니다. –

+0

아마 5 년 전의 사례 였을 것입니다. 이제 python 3이 기본 버전입니다. – simonzack

답변

1

구문이 잘못되어 오류가 발생합니다. 다음은 'Numbers' 키의 목록 값에 추가 :

myDict['Numbers'].append(user_inputs) 

중첩 할 수 있습니다 파이썬 객체를 임의로; myDict2 구문이 완전히 정확합니다. 만 는 불변 할 필요 (그래서 목록 대 튜플),하지만 키는 모든 문자열입니다

>>> myDict2 = {'Names': [{'first name':[],'Second name':[]}]} 
>>> myDict2['Names'] 
[{'first name': [], 'Second name': []}] 
>>> myDict2['Names'][0] 
{'first name': [], 'Second name': []} 
>>> myDict2['Names'][0]['first name'] 
[] 
+0

답변 해 주셔서 감사합니다. 그러나 나는 raw_input을 여러 번 반복 할 수있는 방법이 있다면 방황하고있었습니다. 제 사전이 필요로하는 것처럼 50 번 정도의 raw_input을 정의하고 싶지 않습니다. 나는 for 루프를 생각하고 있었지만 파이썬과 자바와 다른 완전히 새로운 것이었다. –

+0

@DamilolaLucasAromiwe : 'for counter in range (50) :'와 같이 루프를 만들 수있다. 일반적으로 파이썬에서는 Java보다 쉽습니다. –

0

당신은 myDict['Numbers']와 함께 목록에 액세스해야합니다

>>>myDict['Numbers'].append(user_inputs) 

목록에 dicts를 넣을 수 있습니다.

유일한 단서는 사전 키가 불변이어야하므로 사전이나 목록을 키로 사용할 수 없다는 것입니다.

0

중첩 된 사전과 목록을 지원하는 json 라이브러리를 살펴볼 수 있습니다.

또한 dictionary 클래스의 setdefault 메서드에 관심이있을 수 있습니다. 난 당신이 파이썬을 배우고 가정

new_dict = dict() 
some_list = ['1', '2', '3', ...] 
for idx, val in enumerate(some_list): 
    something = get_something(idx) 
    new_dict.setdefault(val, []).append(something) 
+0

세 번째 줄에서 영어 말하기를 중단했습니다. idx는 some_list 또는 python 문과 같은 자리 표시 자입니까? –

+0

idx는 색인을위한 짧은 핸드입니다. 파이썬에서 [열거] (https://docs.python.org/2/library/functions.html#enumerate) 함수를 사용하면 무언가 (예 : some_list)를 반복하고 "개수"/ 색인과 실제 값. –