30
PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))      
PriceList[0][1][2][3][4][5][6]=[PizzaChange]  
PriceList[7][8][9][10][11]=[PizzaChange+3]

基本的に、ユーザーが数値 (float 入力) を入力すると、前述のすべてのリスト インデックスがその値に設定されます。何らかの理由で、次のことを考え出さずにそれらを設定することはできません:

TypeError: 'float' object is not subscriptable

エラー。私は何か間違ったことをしているのですか、それとも私はそれを間違った方法で見ているだけですか?

4

5 に答える 5

31

PriceList[0]フロートです。PriceList[0][1]float の最初の要素にアクセスしようとしています。代わりに、

PriceList[0] = PriceList[1] = ...code omitted... = PriceList[6] = PizzaChange

また

PriceList[0:7] = [PizzaChange]*7
于 2013-11-15T01:07:44.440 に答える
3
PriceList[0][1][2][3][4][5][6]

これは次のように言います: go to the 1st item of my collection PriceList. それはコレクションです。2 番目のアイテムを取得します。それはコレクションです。3番目を取得します...

代わりに、スライスが必要です:

PriceList[:7] = [PizzaChange]*7
于 2013-11-15T01:08:23.343 に答える
1
PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))      
for i,price in enumerate(PriceList):
  PriceList[i] = PizzaChange + 3*int(i>=7)
于 2013-11-15T01:08:39.220 に答える
0

PriceList[0][1][2][3][4][5][6] で複数のインデックスを選択するのではなく、各 [] がサブインデックスになります。

これを試して

PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))      
PriceList[0:7]=[PizzaChange]*7  
PriceList[7:11]=[PizzaChange+3]*4
于 2013-11-15T01:05:31.967 に答える
0

PriceList の要素 0 から 11 を新しい値に設定しようとしているようです。通常、構文は次のようになります。

prompt = "What would you like the new price for all standard pizzas to be? "
PizzaChange = float(input(prompt))
for i in [0, 1, 2, 3, 4, 5, 6]: PriceList[i] = PizzaChange
for i in [7, 8, 9, 10, 11]: PriceList[i] = PizzaChange + 3

それらが常に連続した範囲である場合、次のように書くのはさらに簡単です。

prompt = "What would you like the new price for all standard pizzas to be? "
PizzaChange = float(input(prompt))
for i in range(0, 7): PriceList[i] = PizzaChange
for i in range(7, 12): PriceList[i] = PizzaChange + 3

参考PriceList[0][1][2][3][4][5][6]までに「 の要素 0 の要素 1 の要素 2 の要素 3 の要素 4 の要素 5 の要素 6 の要素PriceList。言い換えれば、 と同じ((((((PriceList[0])[1])[2])[3])[4])[5])[6]です。

于 2013-11-15T01:11:00.543 に答える