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 = {}コードにはありません)。Eclipse 用のPyDevプラグインなどの特定の IDE では、このようなエラーについて警告が表示されます。

別の名前を選択して初期化します。

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 に答える