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?
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'
endstring = ''
for s in list:
endstring += s
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)
Cela devrait fonctionner:
endstring = ''.join(list)
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.