Diminuer la taille d'une liste

Résolu
yamar -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
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 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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
yamar
 
merci beaucoup
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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