Le moyen le plus rapide de diviser une chaîne concaténée en un tuple et d'ignorer les chaînes vides

J'ai une chaîne concaténée comme ceci:

my_str = 'str1;str2;str3;'

et je voudrais lui appliquer une splitfonction, puis convertir la liste résultante en un tuple, et me débarrasser de toute chaîne vide résultant de split(notez le dernier ';' à la fin)

Pour l'instant, je fais ceci:

tuple(filter(None, my_str.split(';')))

Existe-t-il un moyen plus efficace (en termes de vitesse et d'espace) de le faire ?


Solution du problème

Que dis-tu de ça?

tuple(my_str.split(';')[:-1])
('str1', 'str2', 'str3')

Vous divisez la chaîne au niveau du ;caractère et passez toutes les sous-chaînes (sauf la dernière, la chaîne vide) à tuple pour créer le tuple de résultat.

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"