Il est probablement plus facile de l'illustrer par un exemple.
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]
J'ai les deux listes ci-dessus.
Chaque élément de A est dupliqué plusieurs fois. La multiplicité de chaque élément peut être différente (et ils n'ont pas besoin d'être ordonnés comme ici).
B contient le même nombre d'éléments que A. Je veux affecter à la liste C le plus petit élément de chaque élément dupliqué dans A (où la plus petite valeur provient des valeurs correspondantes dans la liste B. Ainsi, pour les 4 premiers éléments, ce serait 0,1, pour les 4 éléments suivants, ce serait 0,01 dans cet exemple, et pour les 4 derniers éléments, ce serait la valeur dupliquée de 0,0003 et ceci pour chacun de ces éléments dupliqués).
Je souhaiterais obtenir la liste suivante.
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]
Comme le code que j'utilise fait déjà largement appel à la compréhension des listes, j'aimerais utiliser la même approche.
Est-ce possible ?
Est-ce souhaitable ?
Je suis familier avec des conditions simples telles que
C = A[B < 0.0005]
pour donner
C = [3]
mais je n'ai pas vraiment d'idée précise sur la façon de procéder ici.