我正在编写此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])
答案 0 :(得分:0)
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”形式出现在产品列表中的元素。我认为要点你会明白的。并查看先前的答案以获取正确的代码