Python: могу ли я связать значение из 2d-списка с позицией в одномерном списке?

#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)