Вероятно, это проще проиллюстрировать на примере.
A = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
B = [0.1, 0.2, 0.3, 0.4, 0.01, 0.02, 0.03, 0.04, 0.001, 0.001, 0.0003, 0.0003]
У меня есть два списка выше.
Каждый элемент в A дублируется несколько раз.Кратность каждого элемента может быть разной (и их не нужно упорядочивать, как здесь).
B содержит то же количество элементов, что и A. Я хочу назначить списку C наименьший элемент из каждогодубликат элемента в A (где наименьшее значение получается из соответствующих значений в списке B. Таким образом, для первых 4 элементов это будет 0,1, для следующих 4 элементов это 0,01 в этом примере и для последних 4 элементов, это дублирующее значение 0,0003, и это для каждого из этих дублирующих элементов).
Я хотел бы получить следующий список.
C = [0.1, 0.1, 0.1, 0.1, 0.01, 0.01, 0.01, 0.01, 0.0003, 0.0003, 0.0003, 0.0003]
Поскольку код, который я использую ужешироко использует понимание списка, я хотел бы использовать тот же подход.
Возможно ли это?
Это целесообразно?
Я знаком с простыми условиями, такими как
C = A[B < 0.0005]
, чтобы дать
C = [3]
, но на самом деле нет четкого представления о том, как действовать здесь.