#python #list
#python #Список
Вопрос:
Я пытаюсь связать значение в том, что я считаю 2d-списком (т.Е.. (1,3),(2,1),(0,1); которые по существу соответствуют переменным: «номер товара» и «количество» соответственно). У меня также есть другой список, но он 1d со значениями (1.25, 3.75, 1.70, 2.30, 1.10). Итак, я пытаюсь связать значения номеров элементов в 2d-списке со значениями в 1d-списке (так что 0 для 1.25, 1 для 3.75 и т.д.). Короче говоря, мне было интересно, есть ли способ, который можно было бы выполнить. Я бы предположил, что мне придется использовать вложенные циклы for для перебора значений. Конечная цель программы — распечатать итоговое значение из предоставленного файла .txt (содержит значения 1d-списка) и файла .csv (содержит значения 2d-списка). Спасибо!
Комментарии:
1. Я не вижу взаимосвязи. Как это
0
соответствует1.25
?2. Мне кажется, что это просто использование целочисленного значения в качестве индекса в 1D-списке. Где вы застряли?
3. @Barmar По сути, ‘0’ соответствует позиции ‘1.25’ в одномерном списке. Таким образом, 0 соответствует 1,25, 1 — 3,75, 2 — 1,70. Если это имеет смысл
4. Но вы сказали, что связываете их с номерами элементов в 2D-списке. Так это
item 1 => price 1.25
,item 2 => price 3.75
,item 0 => price 2.30
?5.
for (itemno, quantity), price in zip(list2d, list1d):
Ответ №1:
Используйте номер товара в качестве индекса в прайс-листе. Умножьте цену на количество и используйте sum()
для вычисления общей суммы.
order_items = [(1,3),(2,1),(0,1)]
prices = [1.25, 3.75, 1.70, 2.30, 1.10]
total_price = sum(prices[itemnum] * quantity for itemnum, quantity in order_items)