Diminuer la taille d'une liste

Résolu/Fermé
yamar - 30 janv. 2022 à 23:08
mamiemando Messages postés 33100 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 mai 2024 - 31 janv. 2022 à 13:37
Bonjour,
j'aimerais savoir comment je peux passer d'une liste
['1' , '2' , ':', '3', '6', ':', '4', '3']

à une liste :
['12', ':', '36', ':', '43']


Configuration: Windows / Chrome 97.0.4692.99

Pouvez-vous m'aider svp

3 réponses

jee pee Messages postés 39715 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 13 mai 2024 9 270
30 janv. 2022 à 23:13
Bonjour,

Tu fais une boucle sur la taille de la liste, tu concatènes l’occurrence à traiter dans une variable de travail, sauf si c'est ":", où tu crées une nouvelle valeur dans la liste de sortie, tu rajoutes la valeur ":", tu réinitialises la variable de travail, et next
1
merci beaucoup
0
mamiemando Messages postés 33100 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 13 mai 2024 7 753
Modifié le 31 janv. 2022 à 13:41
Bonjour,

Voici une manière de faire ce que propose jee pee.

l = ['1' , '2' , ':', '3', '6', ':', '4', '3']
l1 = list()
for x in l:
    if x == ':' or not l1 or l1[-1] == ':':
        l1.append(x)
    else:
        l1[-1] += x
print(l1)


Ou plus élégant, en s'inspirant de cette discussion :

import re

l = ['1' , '2' , ':', '3', '6', ':', '4', '3']
l1 = re.split("(:)", "".join(l))
print(l1)


Bonne chance
0