#python #list #list-comprehension #generator
Вопрос:
У меня есть 2 переменные. Они остаются в обратном соединении и образуют список с 2 значениями, сумма которых равна 1. Пример показан ниже:
[0.1, 0.9], [0.2, 0.8], ..., [0.9, 0.1]
Можно ли создать генератор списков, который способен это сделать?
Поэтому в результате я хочу получить следующий список списков:
[[0.1, 0.9], [0.2, 0.8], ..., [0.9, 0.1]]
Я знаю, что могу использовать for
для этого петлю, однако я хотел бы знать об этой возможности.
Комментарии:
1. Просто совет для вас: «2 значения, сумма которых равна 1», называются дополнительными числами, где они дополняются в 1. Дополнение в основном означает, что независимо от того, чего не хватает первому номеру, оно будет у второго.
Ответ №1:
Вы можете сделать что-то вроде
[[z / 10, (10 - z) / 10] for z in range(1, 10)]
Эта формулировка пытается максимально уменьшить ошибку округления.
Ответ №2:
Вы можете заархивировать списки:
z=[[j/10,i/10] for i,j in zip([x for x in range(10)],[y for y in range(10,-1,-1)])]