Как сравнить значения в цикле for - PullRequest
0 голосов
/ 28 января 2020

Я хочу знать, есть ли способ сравнить два значения в для l oop. Первый представляет текущее значение, а другой представляет предыдущее значение той же вещи. Причина в том, что я пытаюсь создать в программе систему хранения FIFO, и у меня есть две таблицы:

  • Первая - это обычная таблица sqlite, которая записывает входы и выходы, как они происходят, и точно так, как они вводятся. Например: если сегодня магазин получил 2 монитора по цене 5000 каждый, то таблица покажет именно это. В: 2 Цена: 5000 Итого: 10000
  • Второй - это стол за кулисами, который не показывается пользователю, поэтому мы можем получить самую раннюю цену, чтобы заставить работать систему FIFO. Как это работает, я объясню на этом примере. Если мы возьмем последний пример и применим его к этой таблице, он не будет отображаться в: 2 Он проходит через l oop, который повторяется 2 раза (количество входящих единиц) с ценой, установленной на цену единицы (5000 ) так что вы получите две строки с этой информацией В: 1 Цена: 5000 Всего: 5000.

Чего я боюсь, так это если есть 2 единицы с ценой 5000 и 3 с ценой 6000 А я прошу вынуть 4 единицы. Основной стол не будет принимать обе цены и будет принимать только последнюю цену. То, что я хочу сделать, это проверить цену в a для l oop, которая проверяет вторую таблицу и просматривает ее при извлечении продуктов, а если цена меняется, она ломает l oop, вставляет данные, которые были собраны до порвать со старой ценой. go вернуться к l oop, перебрать его снова и вставить новые собранные данные с новой ценой. Мне очень жаль, я знаю, что это сложно, но это настолько простое, насколько я могу. Что я не могу сделать в настоящее время, так это сравнение цен, так что l oop ломается, когда цена меняется, а затем возвращается. Вещь, которую я хочу, проста, но мне нужно было все объяснить, чтобы у вас была общая идея.

Спасибо

1 Ответ

1 голос
/ 28 января 2020

Не имея какого-либо примера кода для работы или каких-либо данных, мне придется предоставить простой пример, который соответствует вашим потребностям.

Обычно, когда вы хотите отслеживать предыдущие данные, вы используете простые переменная для этого.

Пример:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...