for i,v in enumerate(B):
A.insert(2*i+1,v)
4 Réponses :
Utilisation d'une combinaison de intégré zip () code> et liste de compréhensions.
C = []
for sublist in zip(A, B):
C.extend(sublist)
op: Comment créer une nouvelle liste C qui fusionne A et B basée sur leurs éléments paires / impairs? em> supposant que vous avez deux listes avec des éléments étranges / paires mélangés, vous pourrait séparer les éléments impairs / paires et les stocker dans des listes séparées, itération ultérieure sur eux à l'aide de zip (): p> sortie: p>
Je recommande d'utiliser NUMPY au lieu de la convertir en listes (c'est-à-dire avant a = a.toliste () code> et b = b.toliste () code>): [1.0, 11.0, 1.5, 11.5, 2.0, 12.0, 2.5, 12.5, 3.0, 13.0, 3.5, 13.5, 4.0, 14.0, 4.5, 14.5]
J'aime l'utilisation sur NP, mais l'autre solution échouera. Les listes sont de longueur différente.
@Johanschiff a accepté. Mais à en juger par la boucle pour la boucle fournie par OP en question, j'ai supposé que c'est le cas que a code> et B code> est de même longueur. Sinon, la fusion d'impair / même est douteuse et doit être clarifiée.
In [203]: import itertools In [204]: [(i,j) for i,j in zip(A,B)] Out[204]: [(1.0, 11.0), (1.5, 11.5), (2.0, 12.0), (2.5, 12.5), (3.0, 13.0), (3.5, 13.5), (4.0, 14.0), (4.5, 14.5)] In [205]: list(itertools.chain(*[(i,j) for i,j in zip(A,B)])) Out[205]: [1.0, 11.0, 1.5, 11.5, 2.0, 12.0, 2.5, 12.5, 3.0, 13.0, 3.5, 13.5, 4.0, 14.0, 4.5, 14.5]
Pouvez-vous montrer votre sortie attendue? Vous appelez
tolist code>, mais votre intention de travailler avec des tableaux numpus ou des listes Python? Je ne comprends pas quels appels initiaux ànp.zeros code> car ces variables sont écrasées pararange code> plus tard.Même / étrange par index ou valeur? Donner un exemple de travail complet.
Est-ce que l'une de votre liste est-elle même et l'autre avec des éléments impairs? Ou sont-ils à la fois des listes avec des éléments caus et paires aléatoires?
Si je comprends bien correctement, voir RomotRobin dans docs.python.org/2/library/ iTERTOOLS.HTML # Recettes ou Stackoverflow.com / Questions / 2017895 / ... (mettez-le dans une compréhension de la liste pour obtenir une liste)
Bien sûr, si vous avez du code de travail, mais vous le souhaitez dans une nouvelle liste C au lieu d'un, alors faites simplement la même chose après C = A.Copy () pas le plus efficace, mais si vous voulez une nouvelle liste c d'a ... juste le faire.