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

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"

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables