3 votes

Le plus pythonique et le plus efficace est de joindre une liste de chaînes jusqu'à ce que la longueur devienne trop importante.

Supposons que je crée un système de caisse pour un magasin. Voici une liste de produits :

products = ["Apple", "Banana", "Cherry", "Durian"]

Et je veux les relier par des virgules. Je peux donc utiliser ceci :

", ".join(products) # Returns "Apple, Banana, Cherry, Durian"

Que faire si je veux limiter la longueur de la chaîne de sortie ? Supposons que je veuille sortir "Apple, Banana…" si la chaîne finale est supérieure à 20 caractères ? Le problème est que je veux éviter que les noms soient coupés, donc je ne veux pas de "Apple, Banana, Cher…" . Dans certains cas, les chaînes de caractères dans products peut contenir des virgules, donc je ne veux pas diviser la chaîne avec des virgules.

7voto

Synthase Points 3646
products = ["Apple", "Banana", "Cherry", "Durian"]

string = products[0]

for v in products[1:]:
    if len(string) + len(', ') + len(v) <= 20:
        string = string + ', ' + v
    else:
        string = string + '...'
        break

print(string)

Sortie :

Apple, Banana...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X