Вот код, который будет обрабатывать любое количество аргументов. Сначала он сортирует имена аргументов в алфавитном порядке. Затем он создает все пары аргументов и выполняет деления (со значением более раннего arg в алфавитном порядке, делящимся на значение более позднего), сохраняя результаты в dict
, с ключами dict
, которые строятся с помощью конкатенация имен аргументов. Функция возвращает построенный dict
, но, конечно, в вашем коде вы можете выполнить дальнейшие действия над ним.
from itertools import combinations
def ratios(**kwargs):
pairs = combinations(sorted(kwargs.keys()), 2)
return dict((p + q, kwargs[p]/kwargs[q]) for p, q in pairs)
print(ratios(a=600, b=3, c=2))
выход
{'ac': 300.0, 'ab': 200.0, 'bc': 1.5}
Эмм, что? Пожалуйста, дайте полный пример того, чего вы пытаетесь достичь, с помощью ввода и вывода. Я вообще не понимаю ваш вопрос. Это имя функции x также не очень описательно. – timgeb
Почему бы просто не перевести словарь на 'x'? – SuperBiasedMan
Вы не можете разделить буквы буквами. Что вы ожидаете от результата? –