将项添加到字典并使用变量调用dict - Python

时间:2015-03-10 20:26:16

标签: python variables dictionary

我遇到了问题。我想调用一个字典并添加一个项目,但我想通过变量调用它。

if zacetek in predmeti:
    ocena = str(raw_input("Vpisite oceno: "))
    procent = str(raw_input("Vpisite procent: "))
    zacetek[ocena] = procent

Zacetek是名为predmeti的列表中的字符串。字典的名称与该列表中的字符串相同。我基本检查输入(zacetek)是否在那些字符串列表中,然后调用一个名为这样的字典。但是我无法打电话,因为它说zacetek是一个字符串而不是一个对象。我怎么能得到这样的字典?

谢谢!

3 个答案:

答案 0 :(得分:0)

看起来您正在尝试将字符串用作字典。尝试将变量设置为字典,并设置它的键。

predmeti = [] # strings here
zacetek_dict = {}
zacetek = raw_input('Input: ')

if zacetek in predmeti:
    ocena = str(raw_input("Vpisite oceno: "))
    procent = str(raw_input("Vpisite procent: "))
    zacetek_dict[ocena] = procent

答案 1 :(得分:0)

由于zacetek已经是一个字符串,你不能把它当成字典。

如果我正确理解你,你正试图创建一本字典。你需要一个新的变量。如果这是在循环内部,则在循环外实例化新变量,如下所示:

new_dict = {}
# or
new_dict = dict()

否则,如果您只需要它中的一个项目,您可以按照以下方式进行设置:

new_dict = {ocena: procent}

答案 2 :(得分:0)

一些事情:

raw_input已经为您提供了一个字符串。您不必尝试转换为字符串(str(raw_input([prompt]))raw_input([prompt])就足够了。

此外,Zacetek是一个字符串。如果对象是字典,则只能索引键和值。由于Predmeti是一种数据类型(listdict),因此您可以附加到该数据类型,甚至将Zacetek转换为字符串并附加到该对象。

predmeti = {zacetek: {}} # Zacetek is a dictionary
predmeti[zacetek][ocena] = procent # Get's the value of zacetek (Which is a 
                                   # dictionary),then adds a key and a 
                                   # value to it.