Comment associer des éléments de listes courtes et longues à l'aide de permutations ?

DDD
Libérer: 2024-10-29 01:47:02
original
599 Les gens l'ont consulté

How to Pair Elements from Short and Long Lists Using Permutations?

Permutations correspondantes : aligner des listes longues et courtes

Étant donné deux listes de longueurs différentes, nous visons à créer des appariements basés sur la longueur du liste plus courte. Chaque élément de la liste la plus courte doit correspondre à une permutation des éléments de la liste la plus longue.

Par exemple, avec des noms = ['a', 'b'] et des nombres = [1, 2], nous obtiendrait :

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
Copier après la connexion

Si la liste des noms est plus longue, par exemple noms = ['a', 'b', 'c'], les permutations s'étendraient pour inclure :

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
[('a', 1), ('c', 2)]
[('c', 1), ('a', 2)]
[('b', 1), ('c', 2)]
[('c', 1), ('b', 2)]
Copier après la connexion

Solution utilisant itertools.product

Une approche simple consiste à utiliser la fonction itertools.product de la bibliothèque standard Python. Il génère un produit cartésien d'itérables d'entrée, créant toutes les combinaisons possibles.

import itertools

a = ["foo", "melon"]
b = [True, False]
c = list(itertools.product(a, b))

# Output:
# [("foo", True), ("foo", False), ("melon", True), ("melon", False)]
Copier après la connexion

Dans notre cas spécifique, nous pouvons utiliser itertools.product pour associer les éléments de la liste la plus courte avec les permutations de la liste la plus longue. Les permutations sont générées en répertoriant toutes les réorganisations possibles des éléments de la liste la plus longue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal