2014-09-25 5 views
0

Извините, если это вопрос о нобе, но я новичок в программировании и python, поэтому я прошу.Как добавить значения в словарь Python

Я хочу добавить значения в мои словарные ключи.

У меня есть словарь:

dictio = {"Object": "Computer"} 

В настоящее время в ключевых "Объект", я хотел бы добавить значение "мышь".

Таким образом, конечный результат я ищу это:

>>> dictio 
>>> {"Object": ["Computer", "Mouse"]} 
+0

Ваш словарь в результатах недействителен – karthikr

+0

@karthikr .. что вы имеете в виду? – Andre

+0

Вы пробовали [Google] (http://www.google.com), прежде чем спрашивать? –

ответ

1

Один из возможных подходов:

dictio = {"Object": ["Computer"]} 

dictio["Object"].append("mouse") 
0

Вы не можете выполнить операцию списка на строку:

>>> 'string'.append('addition') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'str' object has no attribute 'append' 

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

>>> li=['string'] 
>>> li.append('addition') 
>>> li 
['string', 'addition'] 

Вы хотите взять Dict, состоящий из строки, связанной с другой строкой:

dictio = {"Object": "Computer"} 

И добавить к нему, как если бы это был список. Такая же проблема, как указано выше:

>>> dictio["Object"].append("Mouse") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'str' object has no attribute 'append' 

Что делать? Если объект в dict является строкой, он должен быть списком для добавления к нему.

Вы можете проверить первый:

>>> if isinstance(dictio["Object"], list): 
... dictio["Object"].append('Mouse') 
... else: 
... dictio["Object"]=[dictio["Object"]] 
... dictio["Object"].append('Mouse') 
... 
>>> dictio 
{'Object': ['Computer', 'Mouse']} 

Или попробуйте и реагировать на неудачи:

try: 
    dictio["Object"].append("Mouse") 
except AttributeError: 
    dictio["Object"]=[dictio["Object"]] 
    dictio["Object"].append("Mouse")  
2

Ваша формулировка, кажется, чтобы показать вам не понять правильно, что это ДИКТ в питона. Это также затрудняет нам понимание того, чего вы хотите.

Например:

I want to add values to my dictionary keys. 

неоднозначно (по крайней мере), и может быть истолковано по-разному. Я объясню, что неоднозначно в следующем ответе.

Даже ваш оригинальный пример не помогает, так как он не является допустимым синтаксисом:

>>> {"Object": "Computer", "Mouse"} 
SyntaxError: invalid syntax 

Словарь Словаре около ключевых и значения.

В Словаре каждый ключ имеет значениеи только один.

Итак, вот вопрос, на который вы должны ответить: Что такое "Mouse"? a ключ или значениеdictio, или ни один из них?

Либо вы хотели:

>>> {"Object": "Computer", "Mouse": "A Sample Value"} 

который является словарь с новой парой значение ключа/. Это может быть сделано, как это:

>>> dictio["Mouse"] = "A Sample Value" 

Или, возможно, вы хотите, чтобы «добавить» еще значение к уже хранящегося значение для ключа "Object" в словаре. Но «добавления» значения двусмысленны, говоря о значениив Словаре как словари содержат только один значения для одного ключа!

  • вы хотите текущее строказначения быть сцеплены с новым?
  • Или вы хотите, чтобы заменить текущую строку значения с списком из значений? (Если да, то ваш начальный значение должен был быть одного элемента в первую очередь).

Полученный ДИКТ используя список в значение для ключ"Object" будет:

>>> {"Object": ["My Computer", "Mouse"]} 

Так что это останется один ключДИКТ, с один значение. Это значение случается быть список из значения, это означает, что он сам, он может содержать несколько внутренних значения от в определенном порядке.

Обратите внимание, что если я хочу начать с оригинальным dictio получить предыдущий результат, я должен заменить значение "Computer" (типа строки) с другим значением другого типа: ["My Computer", "Mouse"] (это список значений).

Так что это может быть сделано так:

>>> dictio["Object"] = [dictio["Object"], "Mouse"] 

Но это не очень естественно, и вы, вероятно, хотите, чтобы начать с dictio как это:

>>> dictio = {"Object": ["Mouse"]} 

Затем «добавление 'a значение до больше не является двусмысленным. И тогда было бы также проще достичь:

>>> dictio["Object"].append("Mouse") 

Я надеюсь, что чтение это помогло вам лучше понять, что такое dicts в питона. Вероятно, вы должны найти учебники или базовые документы о словарях, поскольку вы, кажется, пропустили некоторые фундаментальные понятия.

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