我试图将5个名字保存到变量,但我得到错误
TypeError: 'builtin_function_or_method' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
我尝试过其他一些方法,但没有运气,我似乎无法看到问题出在哪里.
k = 0
while k < 5:
sum = input("name: ")
ord[k] = sum
k += 1
Run Code Online (Sandbox Code Playgroud)
我正在尝试将5个名称保存到变量中
不是最好的描述.更好:"我正在尝试创建一个包含5个字符串的字典."
但我得到一个错误
ord是一个内置的功能.它不是字典,除非您之前已分配此名称(您ord = {}的代码中没有).某些IDE,比如eclipse 的PyDev插件,会警告你这些错误.
选择另一个名称,然后对其进行初始化:
d = {}
k = 0
while k < 5:
s = input("name: ")
d[k] = s
k += 1
Run Code Online (Sandbox Code Playgroud)
(sum也是内置的.)
如果您使用的是python2.x,则应使用raw_input()而不是input().
顺便说一句,这段代码可以这样编写:
d = {}
for k in range(5):
d[k] = input("name: ")
Run Code Online (Sandbox Code Playgroud)
甚至更短:
d = { k:input('name: ') for k in range(5) }
Run Code Online (Sandbox Code Playgroud)
而且因为指数是0..4,为什么不用简单list?
d = [ input('name: ') for _ in range(5) ]
Run Code Online (Sandbox Code Playgroud)