0

我试图将 5 个名称保存到变量中,但出现错误

TypeError: 'builtin_function_or_method' object does not support item assignment

我尝试了其他几种方法,但没有运气,我似乎看不出问题出在哪里。

k = 0 
while k < 5: 
    sum = input("name: ") 
    ord[k] = sum 
    k += 1
4

1 回答 1

7

我正在尝试将 5 个名称保存到一个变量中

不是最好的描述。更好:“我正在尝试创建一个包含 5 个字符串的字典。”

但我得到一个错误

ord是一个内置函数。它不是字典,除非您之前已分配给此名称(您ord = {}的代码中没有)。某些 IDE,例如 Eclipse 的PyDev插件,会警告您此类错误。

选择另一个名称,并对其进行初始化:

d = {}
k = 0 
while k < 5: 
    s = input("name: ") 
    d[k] = s
    k += 1

sum也是内置的。)

如果您使用的是 python2.x,则应使用raw_input()而不是input().


顺便说一句,这段代码可以这样写:

d = {}
for k in range(5): 
    d[k] = input("name: ")

甚至更短:

d = { k:input('name: ') for k in range(5) }

并且由于索引是 0..4,为什么不使用简单的list?

d = [ input('name: ') for _ in range(5) ]
于 2013-06-26T14:49:11.547 回答