python错误:TypeError:列表索引必须是整数或切片,而不是列表

时间:2018-08-26 11:28:13

标签: python

我正在编写此python代码,但出现错误。我已经在互联网和StackOverflow上进行了搜索,但对我没有任何帮助!

错误:     TypeError: list indices must be integers or slices, not list (line 7)

我的代码:

products = [
    [
        'name',
        'id',
        'number in stock',
        'price ($)'
    ],
    ['iPhone', '1', '100', '999']
]

def instore(item):
    for x in products:
        if products[x][0] == item:
            print(products[x][0] + ': \n id: ' + products[x][1] + ' In Stock: ' + products[x][2])

4 个答案:

答案 0 :(得分:0)

for循环内的

public class Response { @SerializedName("code") int code; @SerializedName("status") String status; @SerializedName("response") String response; } 已经是x中的相关项目。它不是柜台,也不需要说products

products[x]

(此外,您可能想在这里使用字典而不是列表;然后您可以直接找到for x in products: if x[0] == item: ... 而不是每次都遍历列表。)

答案 1 :(得分:0)

使用setTimeout(() => { ReactDOM.unstable_batchedUpdates(() => { this.changeProp1(); }); }, 100); 语句为变量x分配给products列表中的每个项目,并且它不是索引,因此您应将其作为{{ 1}}列表:

for

答案 2 :(得分:0)

正如其他人已经告诉您的那样,x是列表的元素,而不是计数器变量。如果您仍然想使用计数器,可以执行类似的操作

for x in range(len(products)):
   if products[x][0] == item:
       ...

range(n)函数从0 to n-1创建一个范围(列表)。您可以从here阅读有关范围的更多信息。

答案 3 :(得分:0)

因为您不是要迭代列表中的索引,而是要迭代以变量“ x”形式出现在产品列表中的元素。我认为要点你会明白的。并查看先前的答案以获取正确的代码