编辑列表中的对象?

时间:2015-03-04 03:08:13

标签: python list

我正在制作一个程序,可以跟踪许多人的一些事情,但我遇到了问题。我的代码如下所示:

johnny_appleseed = ["", 1]

def add_hour(name, hours):
    name[1] += hours

def edit_profile():
    input_name = input("Profile to edit: ")
    hours = input("Hours to add: ")
    name = input_name.lower().replace(" ", "_")
    add_hour(name, hours)

edit_profile()

但是,当我在"Profile to edit: "输入中键入“Johnny Appleseed”并选择一些小时时,它会为行name[1] += hours提供以下错误:

TypeError: 'str' object does not support item assignment

我做错了什么,如何解决?

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你认为这会让字符串混淆#johnny_appleseed"使用变量johnny_appleseed,它们不是同一个东西。如果您想跟踪各种人的工作小时数,可以使用字典。我已经研究过你的代码来实现字典部分。

people = {"johnny_appleseed" : 1}
def add_hour(name, hours):
    people[name] += hours
def edit_profile():
    name = str(raw_input("Profile to edit: "))
    hours = int(raw_input("Hours to add: "))
    name = name.lower().replace(" ", "_")
    add_hour(name, hours)

通过这种实现,您可以使用您获得的字符串来索引python字典中的值。如果你想添加一个新人,你就会......人们[" sam"] = 0.然后会有一个新人" sam"在你的人物词典中工作0小时。

所以,你的错误是你认为你可以用同名的字符串调用变量johnny_appleseed,你不能这样做。你必须做点别的事。