问题描述
我目前正在尝试遍历并打印列表中的特定值。 我试图做到这一点的方式就是这样。
for i in range(len(PrintedList)):
index = i
elem=PrintedList[i]
print(elem)
print ("Product = ", PrintedList [index,1], "price ?",PrintedList [index,2])
但是,这将返回错误:
TypeError: list indices must be integers or slices, not tuple.
我真的不确定该如何解决该问题。
1楼
请不要使用indees进行迭代,这很丑陋,并且被认为是非Python语言的。 而是直接循环遍历列表本身并使用元组分配,即:
for product, price, *rest in PrintedList:
print ("Product = ", product, "price ?", price)
要么
for elem in PrintedList:
product, price, *rest = elem
print ("Product = ", product, "price ?", price)
*rest
仅在某些子列表包含2个以上项目(价格和产品)时才需要保留
如果需要指示,请使用枚举:
for index, (product, price, *rest) in enumerate(PrintedList):
print (index, "Product = ", product, "price ?", price)
2楼
当您引用嵌套列表时,请在单独的括号中引用每个索引。 尝试这个:
for i in range(len(PrintedList)):
index = i
elem=PrintedList[i]
print(elem)
print ("Product = ", PrintedList [index][1], "price ?",PrintedList [index][2])