2013-08-30 7 views
-2

ALL,Сделать словарь словарей списка

Это то, что мой код выглядит следующим образом:

self.dict = { 
'Compressed Files': 
    {'7-zip': [ "777", "7z", "7zip", "7-zip", "lzma"]} 
    {'8-zip': [ "bzip2", "tbz", "tbz2" ]} 
    ^- error here 
    {'Norton': ["gho", "ghs", "v2i"]} 
} 

Однако питон говорит, что есть ошибка. Что я делаю не так?

спасибо.

+0

отсутствуют некоторые запятые, и их не группируя должным образом также – TehTris

+2

«Питон говорит, что есть ошибка» является не вопрос полезный. Выложите ошибку и трассировку вместо того, чтобы нас угадать. – abarnert

ответ

2

В словаре должно быть key: value пар - у вас есть один ключ, за которым следуют три значения.

Если вы хотите эквивалент нескольких значений на один ключ, а затем использовать список:

self.dict = { 
    'Compressed Files': [ 
     {'7-zip': [ "777", "7z", "7zip", "7-zip", "lzma"]}, 
     {'8-zip': [ "bzip2", "tbz", "tbz2" ]}, 
     {'Norton': ["gho", "ghs", "v2i"]} 
    ] 
} 

Или, если внешний ДИКТ имеет только один ключ, он не может быть, вообще, просто использовать список.

Edit:

Если вы хотите сохранить это словарь, вам нужно еще два ключа, для остальных файлов:

self.dict = { 
    'Compressed Files': {'7-zip': [ "777", "7z", "7zip", "7-zip", "lzma"]}, 
    'New Key 1': {'8-zip': [ "bzip2", "tbz", "tbz2" ]}, 
    'New Key 2': {'Norton': ["gho", "ghs", "v2i"]} 
} 
+1

Стоит отметить, что вам также нужны запятые между значениями в любой коллекции, потому что OP оставил некоторые из них. – abarnert

+0

@Lattyware, зачем мне нужен дополнительный список? Не могу ли я иметь словарь словарей списка? – Igor

+0

@Igor Вы могли бы, но тогда вам нужны три ключа - неясно, какими они будут. Словарь представляет собой набор пар «ключ: значение» - вы не можете иметь несколько значений для одного ключа. –

0
self.dict = { 
'Compressed Files': 
    {'7-zip': [ "777", "7z", "7zip", "7-zip", "lzma"]} 
    {'8-zip': [ "bzip2", "tbz", "tbz2" ]} 
    {'Norton': ["gho", "ghs", "v2i"]} 
} 

Существует ошибка синтаксиса в коде. Если все три словари хранятся в виде списка под ключ «Compressed Files», вы должны написать:

self.dict = { 
    'Compressed Files': [ 
     {'7-zip': [ "777", "7z", "7zip", "7-zip", "lzma"]}, 
     {'8-zip': [ "bzip2", "tbz", "tbz2" ]}, 
     {'Norton': ["gho", "ghs", "v2i"]} 
    ] 
} 
+0

Зачем нужен дополнительный список здесь? Мне нужен словарь словарей списка (извините, используя терминологию Perl здесь). Поэтому в разделе «Сжатые файлы» у меня будет 3 словаря: 7-zip, 8-zip и Norton. – Igor

Смежные вопросы