Programmation Python/Les chaînes de caractères

Un livre de Wikilivres.
Aller à : navigation, rechercher
Programmation Python

Python-logo-notext.svg

Partie 1 : Introduction
Partie 2 : Le langage
Partie 3 : Les bibliothèques
Annexe
Modifier ce modèle


Les chaines de caractères sont des liste de caractères chainés le plus souvent dans des tableaux à une dimension.

Chaine simple[modifier | modifier le wikitexte]

strings = "il etait une fois"
 
>>> print strings
'il etait une fois'

Liste de chaines[modifier | modifier le wikitexte]

strings = ["string1"]*5 + ["string2"]*3
 
>>> print strings
['string1', 'string1', 'string1', 'string1', 'string1', 'string2', 'string2', 'string2']
 
>>> print strings[0]
string1

Concaténation[modifier | modifier le wikitexte]

append[modifier | modifier le wikitexte]

str2 renvoie toutes les entrées de strings qui ne sont pas des string2, concaténées.

def str2():
    string_final = []
    for string in strings:
        if not "string2" in string:
            string_final.append(string)
    return "".join(string_final)
 
>>> str2()
'string1string1string1string1string1'

join[modifier | modifier le wikitexte]

str3 retourne toutes les entrées de strings qui ne sont pas des string2, concaténées via app.

def str3():
    string_final = []
    app = string_final.append
    for string in strings:
        if not "string2" in string:
            app(string)
    return "".join(string_final)
 
>>> str3()
'string1string1string1string1string1'

Optimisation[modifier | modifier le wikitexte]

str4 vérifie chaque entrée de strings, si elle se termine par ing2 elle est ajoutée au résultat.

def str4():
    string_final = ""
    for string in strings:
        if string[3:] == "ing2":
            string_final += string
    return string_final
 
>>> str4()

str5 vérifie chaque entrée de strings, si elle se termine par ing2 elle est ajoutée au résultat.

def str5():
    string_final = ""
    for string in strings:
        if string.endswith("ing2"):
            string_final += string
    return string_final
 
>>> str5()

On s'aperçoit que str4() est plus rapide que str5() car ne faisant pas appel à une fonction de plus haut niveau dans la boucle.