Python 使用for循环比较列表

Python 使用for循环比较列表,python,list,loops,for-loop,Python,List,Loops,For Loop,现在的问题是我有一个列表,需要逐一迭代和比较 def stockcheck(): stock = open("Stock.csv", "r") reader = csv.reader(stock) stockList = [] for row in reader: stockList.append(row) printstockList的输出为: [['Product', 'Current Stock', 'Reorder Level', 'Ta

现在的问题是我有一个列表,需要逐一迭代和比较

def stockcheck():
    stock = open("Stock.csv", "r")
    reader = csv.reader(stock)
    stockList = []
    for row in reader:
        stockList.append(row)
printstockList的输出为:

[['Product', 'Current Stock', 'Reorder Level', 'Target Stock'], ['plain blankets', '5', '10', '50'], ['mugs', '15', '20', '120'], ['100m rope', '60', '15', '70'], ['burner', '90', '20', '100'], ['matches', '52', '10', '60'], ['bucket', '85', '15', '100'], ['spade', '60', '10', '65'], ['wood', '100', '10', '200'], ['sleeping bag', '50', '10', '60'], ['chair', '30', '10', '60']]
我已经找到了这个的基础,但我没有运气。。。我相信解决办法很简单,但我还是不明白!基本上,我需要检查当前库存是否低于重新订购的水平,如果是将其保存到CSV,我可以做的部分没有问题

for item in stockList:
    if stockList[1][1] < stockList[1][2]:
        print("do the add to CSV jiggle")
这是我所能做的,但它没有迭代通过。。。有什么想法吗?提前谢谢

使用列表理解反复浏览股票列表,然后打印结果

[sl for sl in stockList[1:] if sl[1] < sl[2]]
如果您想知道stockList[1:]是为了确保忽略标题

但是,您必须注意,这些值是要比较的字符串。因此,将逐字符比较这些值。如果要进行整数比较,则必须将字符串转换为整数,前提是您绝对确定sl[1]和sl[2]将始终是整数-仅以字符串形式显示。试着做:

[sl for sl in stockList[1:] if int(sl[1]) < int(sl[2])]
使用[1:]不获取标题,然后进行比较

for item in stockList[1:]:
    if item[1] < item[2]:
        print item
        print("do the add to CSV jiggle")

谢谢,这太棒了!项[1]<项[2]正在将数字作为字符串进行比较。。。以防万一。我是说,'5'>'10'@MildCorma如果答案是成功的,请接受答案。感谢[sl为库存清单[1]中的sl提供帮助,如果sl[1][['plain blankets', '5', '10', '50'], ['mugs', '15', '20', '120']]
for item in stockList[1:]:
    if item[1] < item[2]:
        print item
        print("do the add to CSV jiggle")