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

Comment signer la connexion OKEx API version 5 avec websockets ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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