将字符串保存到变量,得到builtin_function错误

Dym*_*ond 0 python

我试图将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)

Ela*_*zar 7

我正在尝试将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)