如何比较for循环中的值

2024-05-19 12:34:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种方法可以比较for循环中的两个值。第一个表示当前值,另一个表示同一事物的上一个值。原因是我试图在程序中创建一个存储FIFO系统,我这样做的方式是我有两个表

  • 第一个是一个常规的sqlite表,记录发生的输入和输出以及输入的方式。例如:如果商店今天收到了两台显示器,每台价格为5000美元,那么表格将准确显示这一点。In:2价格:5000总计:10000
  • 第二个是一张在幕后的桌子,看起来并没有 这样我们就可以得到最早的价格,使先进先出 系统工作。我将通过这个例子来解释它是如何工作的。如果我们采取 最新的示例并将其应用于此表,它将不会显示 在:2中,它通过一个重复2次的for循环(数字 价格设置为单价(5000),因此 在:1价格:5000总计:5000中获取包含此信息的两行

我担心的是,如果有两个单位的价格是5000,3个单位的价格是6000,而我要求购买4个单位。主表不会同时包含这两个价格,只包含最新的价格。我想做的是在一个for循环中测试价格,该循环检查第二个表,并在取出产品时遍历该表,如果价格发生变化,它将中断循环,插入中断前收集的数据和旧价格。返回循环并再次循环,插入新收集的数据和新价格。我很抱歉,我知道这很复杂,但这是尽可能的简化。我现在不能做的是比较价格,这样当价格变化时,循环就会中断,然后再回来。我想要的东西很简单,但我需要解释一切,这样你就有了一个大致的想法

谢谢


Tags: 数据方法程序forsqlite系统方式记录
1条回答
网友
1楼 · 发布于 2024-05-19 12:34:37

如果没有一些代码示例或数据,我将不得不提供一个适合您需要的简单示例

通常,当您想要跟踪以前的数据时,可以使用一个简单的变量来跟踪

例如:

mock_data = ['value 1', 'value 2', 'value 3', 'value 4', 'value 4', 'value 2', 'value 2', 'value 4']
previous_value = ''

for value in mock_data:
    if value == previous_value:
        print(value)
    else:
        print('no match')
    previous_value = value

结果:

no match
no match
no match
no match
value 4
no match
value 2
no match

如果需要检查以前的所有值,可以使用列表

mock_data = ['value 1', 'value 2', 'value 3', 'value 4', 'value 4', 'value 2', 'value 2', 'value 4']
previous_value = []

for value in mock_data:
    if value in previous_value:
        print(value)
    else:
        print('no match')
        previous_value.append(value)

结果:

no match
no match
no match
no match
value 4
value 2
value 2
value 4

相关问题 更多 >