尝试为字典分配名称,python认为我索引了一个字符串

时间:2017-06-09 03:35:09

标签: python dictionary indexing

这可能是我的一个愚蠢的错误,我确实在发布之前检查了建议的答案,但我遇到以下代码的问题:

label_dict = {}
labels_list = [('name', 'Enter the name of the Item:'), ('price', 'Enter Price:'), ('quantity', 'Enter Quantity:'), ('date_incoming', 'Enter Date Incoming:'),
               ('date_sold', 'Enter Date Sold:'), ('location', 'Enter Location:'), ('returnable', 'Enter whether Returnable:')]

x = 0
for label_name, label_text in labels_list:
    label_dict[label_name] = Label(root, text=label_text)
    label_text[label_name].grid(row=x, column=0)
    x += 1

我的印象是我能够创建一个空字典,然后在以后为其分配值。但是python一直告诉我,字符串索引必须是整数'。

我做错了什么?任何帮助非常感谢!

2 个答案:

答案 0 :(得分:1)

Python是绝对正确的。你只有一个拼写错误并使用字符串而不是字典。而不是

#     vvvv
label_text[label_name].grid(row=x, column=0)
#     ^^^^

使用label_dict[label_name].grid(row=x, column=0)

答案 1 :(得分:1)

不确定这是不是错字。但问题出在这一行:

label_text[label_name].grid(row=x, column=0)

label_text是一个字符串,实际上它的索引只能是整数,但是你使用另一个字符串作为索引。