voil=E0, j'ai besoin d'ins=E9rer une chaine dans une autre =E0 une position
donn=E9e,
je suis =E9tonn=E9 de ne pas trouver cela dans le module string, j'ai donc
=E9cris une
fonction comme ci-dessous en utilisant les slices (serait-ce mieux
avec des listes ?),
mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de
base' ?
def insert(original, inserted, pos):
'''Insert inserted in original at the given pos
If pos > len(original), complete original string
whith whitespaces.
'''
diff =3D pos - len(original)
if diff > 0 : # on doit placer des espaces
original +=3D " "*(diff)
return original[:pos] + inserted + original[pos:]
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Pointal
Salut,
voilà, j'ai besoin d'insérer une chaine dans une autre à une position donnée, je suis étonné de ne pas trouver cela dans le module string, j'ai donc écris une fonction comme ci-dessous en utilisant les slices (serait-ce mieux avec des listes ?), mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de base' ?
def insert(original, inserted, pos): '''Insert inserted in original at the given pos
If pos > len(original), complete original string whith whitespaces. ''' diff = pos - len(original) if diff > 0 : # on doit placer des espaces original += " "*(diff) return original[:pos] + inserted + original[pos:]
Merci, a plus : Kib²
Il n'existe aucune fonction/méthode de base pour modifier une chaîne. Elles sont "immutables", une fois créées on ne peut pas les modifier sur place.
Donc, ta façon de faire est la bonne.
Pour info: http://www.python.org/doc/faq/general/#why-are-python-strings-immutable
Salut,
voilà, j'ai besoin d'insérer une chaine dans une autre à une position
donnée,
je suis étonné de ne pas trouver cela dans le module string, j'ai donc
écris une
fonction comme ci-dessous en utilisant les slices (serait-ce mieux
avec des listes ?),
mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de
base' ?
def insert(original, inserted, pos):
'''Insert inserted in original at the given pos
If pos > len(original), complete original string
whith whitespaces.
'''
diff = pos - len(original)
if diff > 0 : # on doit placer des espaces
original += " "*(diff)
return original[:pos] + inserted + original[pos:]
Merci, a plus :
Kib²
Il n'existe aucune fonction/méthode de base pour modifier une chaîne.
Elles sont "immutables", une fois créées on ne peut pas les modifier sur
place.
Donc, ta façon de faire est la bonne.
Pour info:
http://www.python.org/doc/faq/general/#why-are-python-strings-immutable
voilà, j'ai besoin d'insérer une chaine dans une autre à une position donnée, je suis étonné de ne pas trouver cela dans le module string, j'ai donc écris une fonction comme ci-dessous en utilisant les slices (serait-ce mieux avec des listes ?), mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de base' ?
def insert(original, inserted, pos): '''Insert inserted in original at the given pos
If pos > len(original), complete original string whith whitespaces. ''' diff = pos - len(original) if diff > 0 : # on doit placer des espaces original += " "*(diff) return original[:pos] + inserted + original[pos:]
Merci, a plus : Kib²
Il n'existe aucune fonction/méthode de base pour modifier une chaîne. Elles sont "immutables", une fois créées on ne peut pas les modifier sur place.
Donc, ta façon de faire est la bonne.
Pour info: http://www.python.org/doc/faq/general/#why-are-python-strings-immutable
Tool69
On 4 avr, 11:52, Laurent Pointal wrote:
Salut,
voilà, j'ai besoin d'insérer une chaine dans une autre à une posi tion donnée, je suis étonné de ne pas trouver cela dans le module string, j'ai d onc écris une fonction comme ci-dessous en utilisant les slices (serait-ce mieux avec des listes ?), mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de base' ?
def insert(original, inserted, pos): '''Insert inserted in original at the given pos
If pos > len(original), complete original string whith whitespaces. ''' diff = pos - len(original) if diff > 0 : # on doit placer des espaces original += " "*(diff) return original[:pos] + inserted + original[pos:]
Merci, a plus : Kib²
Il n'existe aucune fonction/méthode de base pour modifier une chaîne. Elles sont "immutables", une fois créées on ne peut pas les modifier sur place.
Donc, ta façon de faire est la bonne.
Pour info:http://www.python.org/doc/faq/general/#why-are-python-strings-i mmutable
Merci Laurent,
je savais que les chaîne étaient immutables, donc qu'on ne peut pas les modifier sans créer une nouvelle instance. Cependant j'esperai qu'une telle fonction soit déjà présente quelque part dans un module.
A bientôt, Kib²
On 4 avr, 11:52, Laurent Pointal <laurent.poin...@limsi.fr> wrote:
Salut,
voilà, j'ai besoin d'insérer une chaine dans une autre à une posi tion
donnée,
je suis étonné de ne pas trouver cela dans le module string, j'ai d onc
écris une
fonction comme ci-dessous en utilisant les slices (serait-ce mieux
avec des listes ?),
mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de
base' ?
def insert(original, inserted, pos):
'''Insert inserted in original at the given pos
If pos > len(original), complete original string
whith whitespaces.
'''
diff = pos - len(original)
if diff > 0 : # on doit placer des espaces
original += " "*(diff)
return original[:pos] + inserted + original[pos:]
Merci, a plus :
Kib²
Il n'existe aucune fonction/méthode de base pour modifier une chaîne.
Elles sont "immutables", une fois créées on ne peut pas les modifier sur
place.
Donc, ta façon de faire est la bonne.
Pour info:http://www.python.org/doc/faq/general/#why-are-python-strings-i mmutable
Merci Laurent,
je savais que les chaîne étaient immutables, donc qu'on ne peut pas
les modifier sans créer une nouvelle instance.
Cependant j'esperai qu'une telle fonction soit déjà présente quelque
part dans un module.
voilà, j'ai besoin d'insérer une chaine dans une autre à une posi tion donnée, je suis étonné de ne pas trouver cela dans le module string, j'ai d onc écris une fonction comme ci-dessous en utilisant les slices (serait-ce mieux avec des listes ?), mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de base' ?
def insert(original, inserted, pos): '''Insert inserted in original at the given pos
If pos > len(original), complete original string whith whitespaces. ''' diff = pos - len(original) if diff > 0 : # on doit placer des espaces original += " "*(diff) return original[:pos] + inserted + original[pos:]
Merci, a plus : Kib²
Il n'existe aucune fonction/méthode de base pour modifier une chaîne. Elles sont "immutables", une fois créées on ne peut pas les modifier sur place.
Donc, ta façon de faire est la bonne.
Pour info:http://www.python.org/doc/faq/general/#why-are-python-strings-i mmutable
Merci Laurent,
je savais que les chaîne étaient immutables, donc qu'on ne peut pas les modifier sans créer une nouvelle instance. Cependant j'esperai qu'une telle fonction soit déjà présente quelque part dans un module.
voilà, j'ai besoin d'insérer une chaine dans une autre à une position donnée,
On insère pas de chaînes en python, on en produit de nouvelles.
je suis étonné de ne pas trouver cela dans le module string, j'ai donc écris une
Le module string ne doit pas être utilisé, les méthodes du type str sont plus optimisées.
fonction comme ci-dessous en utilisant les slices (serait-ce mieux avec des listes ?), mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de base' ?
Non cela n'existe pas, mais c'est une opération de formatage de chaîne assez élémentaire, on pourrait écrire cette fonction de la façon suivante (c'est pas forcément plus clair, mais c'est juste pour dire qu'on peut le faire en une seule expression) :
voilà, j'ai besoin d'insérer une chaine dans une autre à une position
donnée,
On insère pas de chaînes en python, on en produit de nouvelles.
je suis étonné de ne pas trouver cela dans le module string, j'ai donc
écris une
Le module string ne doit pas être utilisé, les méthodes du type str sont
plus optimisées.
fonction comme ci-dessous en utilisant les slices (serait-ce mieux
avec des listes ?),
mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de
base' ?
Non cela n'existe pas, mais c'est une opération de formatage de chaîne assez
élémentaire, on pourrait écrire cette fonction de la façon suivante (c'est
pas forcément plus clair, mais c'est juste pour dire qu'on peut le faire en
une seule expression) :
voilà, j'ai besoin d'insérer une chaine dans une autre à une position donnée,
On insère pas de chaînes en python, on en produit de nouvelles.
je suis étonné de ne pas trouver cela dans le module string, j'ai donc écris une
Le module string ne doit pas être utilisé, les méthodes du type str sont plus optimisées.
fonction comme ci-dessous en utilisant les slices (serait-ce mieux avec des listes ?), mais pouvez-vous me confirmer qu'il n'existe pas de telle fonction 'de base' ?
Non cela n'existe pas, mais c'est une opération de formatage de chaîne assez élémentaire, on pourrait écrire cette fonction de la façon suivante (c'est pas forcément plus clair, mais c'est juste pour dire qu'on peut le faire en une seule expression) :
Il n'y en a pas, c'est juste pour dire que ça se fait en une seule expression, et donc, qu'à la limite il n'y a pas vraiment besoin de fonction non plus (à moins de le faire vraiment très souvent, ce dont je doute un peu).
-- Maric Michaud - www.aristote.info
MC wrote:
Bonjour !
Bonjour,
Je ne voudrais l'air de critiquer, mais, dans le'exemple cité, je ne
vois pas bien l'intérêt de la lambda, relativement à ça :
Il n'y en a pas, c'est juste pour dire que ça se fait en une seule
expression, et donc, qu'à la limite il n'y a pas vraiment besoin de
fonction non plus (à moins de le faire vraiment très souvent, ce dont je
doute un peu).
Il n'y en a pas, c'est juste pour dire que ça se fait en une seule expression, et donc, qu'à la limite il n'y a pas vraiment besoin de fonction non plus (à moins de le faire vraiment très souvent, ce dont je doute un peu).