web-dev-qa-db-fra.com

Python - Comment concaténer une chaîne dans une boucle for?

J'ai besoin de "concaténer une chaîne dans une boucle for". Pour expliquer, j'ai cette liste:

list = ['first', 'second', 'other']

Et à l'intérieur d'une boucle for, je dois terminer avec ceci:

endstring = 'firstsecondother'

Pouvez-vous me donner un indice sur la façon d'y parvenir en python?

12
André

Ce n'est pas comme ça qu'on fait.

>>> ''.join(['first', 'second', 'other'])
'firstsecondother'

c'est ce que tu veux.

Si vous le faites dans une boucle for, ça va être inefficace car la chaîne "addition"/concaténation n'est pas bien mise à l'échelle (mais bien sûr c'est possible):

>>> mylist = ['first', 'second', 'other']
>>> s = ""
>>> for item in mylist:
...    s += item
...
>>> s
'firstsecondother'
46
Tim Pietzcker
endstring = ''
for s in list:
    endstring += s
5
Samuel Edwin Ward

Si vous devez, voici comment vous pouvez le faire dans une boucle for:

mylist = ['first', 'second', 'other']
endstring = ''
for s in mylist:
  endstring += s

mais vous devriez envisager d'utiliser join():

''.join(mylist)
3
Adam Zalcman

Cela devrait fonctionner:

endstring = ''.join(list)
1
Óscar López

Alors que "" .join est plus Pythonic, et la bonne réponse à ce problème, il est en effet possible d'utiliser une boucle for.

S'il s'agit d'un devoir (veuillez ajouter une balise si c'est le cas!), Et que vous devez utiliser une boucle for, alors ce qui fonctionnera (bien que ce ne soit pas Pythonic, et ne devrait pas vraiment être fait de cette façon si vous êtes un programmeur professionnel écrit python) est le suivant:

endstring = ""
mylist = ['first', 'second', 'other']
for Word in mylist:
  print "This is the Word I am adding: " + Word
  endstring = endstring + Word
print "This is the answer I get: " + endstring

Vous n'avez pas besoin des "empreintes", je les ai juste jetées dedans pour que vous puissiez voir ce qui se passe.

0
Aurora