Найти - Пользователи
Полная версия: Работа с кортежем tuple
Начало » Python для экспертов » Работа с кортежем tuple
1
ivangeraskin
Есть некоторый набор продуктов: prod1, prod2, prod3, … prod20. Если комбинация продуктов была в одном чеке, то она записана как ключ в словаре dict со значением, равным количеству чеков, в которые входила данная комбинация.

product_dict = {('prod1','prod2'):2000, ('prod2','prod5'):3500, ('prod1','prod5'):1500, ('prod1','prod2','prod5'):300, …}.

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

product_set = ('prod1','prod2','prod5')

шаг1
print product_set/product_set
шаг2
print product_set/product_set
шаг3
print product_set/product_set

Возможно стоит воспользоваться библиотекой itertools. Буду благодарен за помощь!
py.user.next
Используй теги кода. Приведи пример нормально, ничего не понятно.
scidam
Если правильно понял, что нужно что-то вроде этого:

 import itertools
yourdict = {('t1', 't2'): 100,
            ('t1', 't2', 't3'): 200,
            ('t1', 't2', 't3', 't4'): 300,
            }
for i, j in itertools.combinations(yourdict, 2):
    if len(set(i)-set(j)) == 1:
        print('Result for ({}, {}): {}'.format(i, j, yourdict[i] / yourdict[j]))
    elif len(set(j)-set(i)) == 1:
        print('Result for ({}, {}): {}'.format(i, j, yourdict[j] / yourdict[i]))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB