尝试使用变量为字典键分配2个或更多值?

时间:2017-01-29 10:17:10

标签: python variables dictionary

抱歉,我对python有点新意,感谢任何帮助。

我正在尝试使用在提示时给定值的变量为字典键分配2个值。我不断收到此错误消息:

Traceback (most recent call last):
File "C:\Users\Fader\Desktop\List creator.py", line 41, in <module>
myLists[key].append(edit)
AttributeError: 'str' object has no attribute 'append'

这是我到目前为止所做的:

    print (list(myLists.keys()))
    key=input("What List would you like edit?")
    myLists.setdefault(key, [])
    edit=input("What would you like to add?")
    myLists[key].append(edit)

我试图提示输入密钥。将该键设置为默认值,然后提示进行编辑并将编辑附加到指定键。

2 个答案:

答案 0 :(得分:0)

我认为代替$scope.formattedArr = [ {value: "1",name: "A" }, {value: "2",name: "B" }, {value: "3",name: "C" }, {value: "4",name: "D" }, {value: "5",name: "E" }, {value: "6",name: "F" }, {value: "7",name: "Others" } ] 你的意思是default

请将第三行更改为此,并检查这是否是您的意思:

initial

答案 1 :(得分:0)

正如Ashwini Chaudhary所提到的,最可能发生这种情况的原因是因为你已经在字典中找到了这样的密钥。您可以尝试清除现有值:

myLists[key] = myLists[key] if isinstance(myLists.get(key), list) else [])

或者如果由于某种原因你想保留那里已有的词:

myLists[key] = myLists[key] if isinstance(myLists.get(key), list) else 
               [myLists[key]] if isinstance(myLists.get(key), str) else
               []

但是你可能会做一些其他的数据处理方法:P