Essayer d'ajouter deux listes et mélanger les éléments des deux listes simultanément avec une fonction d'énumération
J'utilise deux fonctions:
De plus, je souhaite également mélanger les éléments de list_b dans la nouvelle liste aléatoire_a et utiliser la même fonction d'énumération pour indexer les éléments des deux listes dans une même séquence de nombres. Voici où je me situe jusqu'ici.
['nano', 'charlie', 'alpha', 'beta', [1, 2, 3, 4, 5, 6, 7], 'romeo'] 1 nano 2 charlie 3 alpha 4 beta 5 [1, 2, 3, 4, 5, 6, 7] 6 romeo
Sortie
list_a = ["alpha", "beta", "romeo", "nano", "charlie"] list_b = [1,2,3,4,5,6,7] from random import shuffle list_a.append(list_b) shuffle(list_a) print(list_a) for idx, val in enumerate(list_a, start=1): print(idx, val)
3 Réponses :
Essayez ceci:
# append from random import sample, shuffle list_a.append(list_b) # shuffle the list within the list for i, v in enumerate(list_a): if isinstance(v, list): list_a[i] = sample(v, len(v)) # shuffle the list list_a = sample(list_a, len(list_a)) # unpack elements list_c = [] for e in list_a: if not isinstance(e, list): list_c.append(e) continue for v in e: list_c.append(v) # print for i, v in enumerate(list_c): print(i, v)
N'hésitez pas à voter et utilisez ma réponse comme réponse dédiée à votre question :)
Il me manque peut-être quelque chose, mais vous pouvez simplement mélanger list_b
avant de l'ajouter à list_a
:
['alpha', 'charlie', 'nano', [1, 4, 5, 2, 7, 3, 6], 'beta', 'romeo'] 1 alpha 2 charlie 3 nano 4 [1, 4, 5, 2, 7, 3, 6] 5 beta 6 romeo
Sorties p >
from random import shuffle list_a = ["alpha", "beta", "romeo", "nano", "charlie"] list_b = [1, 2, 3, 4, 5, 6, 7] shuffle(list_b) list_a.append(list_b) shuffle(list_a) print(list_a) for idx, val in enumerate(list_a, start=1): print(idx, val)
Vous pouvez facilement obtenir votre résultat par la méthode du concept de base if-else
ET type
. J'ai ajouté 2 lignes dans votre code: -
list_a = ["alpha","beta","romeo","nano","charlie"] list_b = [1,2,3,4,5,6,7] from random import shuffle list_a.append(list_b) shuffle(list_a) print(list_a) print() for idx, val in enumerate(list_a, start=1): if type(val) is list: # This is newly added. shuffle(val) print(idx, val) else: print(idx, val)
J'espère que cela pourra vous aider.
Je ne suis pas sûr de comprendre à quoi vous vous attendez
Je m'attends à voir des éléments de list_b également être mélangés puis enrôlés dans l'ordre numérique. Résultat attendu à titre d'exemple >> [7,1,3,4,5,2,6] et ensuite énumérer la fonction doit montrer 1-nano 2-charlie 3-alpha 4-beta 5-7 6-1 7-3 et ainsi de suite. J'espère que cela clarifie