-1
votes

Diviser une liste en différentes tranches et la concaténer

J'ai vu des questions similaires à la mienne, mais rien que je recherchais vraiment corrigé mon problème.
Donc, fondamentalement, je veux diviser une liste, afin de supprimer des éléments et de la concaténer. Ces éléments correspondent à des index donnés par une liste de tuples.
xxx

Ce code que j'ai, que j'ai reçu de L'une des réponses de ce poste fait presque ce dont j'ai besoin, mais j'ai essayé de l'adapter Pour boucler sur le premier index des indices une fois, il fait à la place deux fois et cela n'inclut pas le reste de la liste.

Je veux ma liste finale à scinder de zéro index sur le premier élément sur le premier tuple et ainsi de suite, en utilisant une boucle ou un autre itérateur.
Quelque chose comme ça, xxx

Si quelqu'un pouvait le faire en utilisant des boucles, il serait plus facile pour moi de voir comment vous comprenez le problème, puis je peux essayer de vous adapter à Utilisation de code plus court.


4 commentaires

Pourriez-vous ajouter le résultat final attendu? Cela aidera à comprendre votre question.


Bien sûr, je viens de l'ajouter.


Votre sortie ne correspond pas à votre question. Lorsque je copie et collez votre code, les valeurs de votre résultat attendu sont erronées.


J'ai ajouté une réponse selon votre logique final_arr , mais la sortie est différente de celle que vous décrivez dans #returns . Si ce n'est pas la sortie attendue, faites-le nous savoir.


4 Réponses :


1
votes

Comme ceci: xxx

sortie: xxx


0 commentaires

2
votes

Trier les indices en utilisant trié code> et del code> les tranches. Vous avez besoin Reverse = true code> sinon, les indices des tranches ultérieures sont incorrects.

print(arr[0:indices[0][0]] + arr[indices[0][1]:indices[1][0]] + arr[indices[1][1]:])

>>> ['x', 'y', 'b', 'c', 'd', 'g', 2, 3, 4]


0 commentaires

1
votes
['x', 'y', 'b', 'c', 'd', 'g', 2, 3, 4]
['x', 'y', 'b', 'c', 'd', 'g', 2, 3, 4]

2 commentaires

Salut @blakev pourriez-vous m'expliquer ce que cet iTertools.chain.from_iterable est vraiment? Je pense que la pièce de code pourrait fonctionner. Mais je suis nouveau à Python et ces méthodes de fantaisie sont difficiles à comprendre!


iTERTOOLS.CHAIN.FROM_ITERABLE prend une liste de listes et la compresse dans une liste "plate". Documentation Python .



0
votes

1- Si vous pouvez supprimer les éléments de la liste:

J'utilise l'exemple de Jimithypicker . Je modifie la liste d'index (éléments supprimés), car toujours qu'un indice a été supprimé la taille de la liste de la liste. XXX

SORTIE: Xxx


2- Si vous ne pouvez pas supprimer les éléments:

Dans ce cas, il est nécessaire de changer le deuxième indice! Le nombre ne correspond pas à la sortie souhaitée. de
Les indices = [(2,4), (7,9)] ont la sortie: ['X', 'Y', 'A', 'B', 'C', "D", " g ', 2, 3, 4] xxx

sortie: xxx


0 commentaires