如何使用for循环遍历Python中的嵌套列表

时间:2017-02-16 15:18:18

标签: python list python-3.x loops for-loop

我目前正在尝试遍历并打印列表中的特定值。 我试图这样做的方式是这样的。

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.

我真的不确定如何解决这个问题。

2 个答案:

答案 0 :(得分:4)

请不要使用indeces迭代,这是丑陋的,被认为是非pythonic。而是直接遍历列表本身并使用元组赋值,即:

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个商品(价格和产品)时才需要

如果您需要indeces,请使用enumerate:

for index, (product, price, *rest) in enumerate(PrintedList):
     print (index, "Product = ", product, "price £", price)

答案 1 :(得分:0)

当您引用嵌套列表时,可以在单独的括号中引用每个索引。试试这个:

for i in range(len(PrintedList)):
    index = i
    elem=PrintedList[i]
    print(elem)
    print ("Product = ", PrintedList [index][1], "price £",PrintedList [index][2])
相关问题