我遇到了问题。我想调用一个字典并添加一个项目,但我想通过变量调用它。
if zacetek in predmeti:
ocena = str(raw_input("Vpisite oceno: "))
procent = str(raw_input("Vpisite procent: "))
zacetek[ocena] = procent
Zacetek是名为predmeti的列表中的字符串。字典的名称与该列表中的字符串相同。我基本检查输入(zacetek)是否在那些字符串列表中,然后调用一个名为这样的字典。但是我无法打电话,因为它说zacetek是一个字符串而不是一个对象。我怎么能得到这样的字典?
谢谢!
答案 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
是一种数据类型(list
或dict
),因此您可以附加到该数据类型,甚至将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.