J'ai déjà regardé ce post à propos d'erreurs de python itérables:
Erreur Python "Can only iterable"
Mais c'était à propos de l'erreur "ne peut pas assigner un itérable". Ma question est pourquoi le python me dit-il:
"list.py", line 6, in <module>
reversedlist = ' '.join(toberlist1)
TypeError: can only join an iterable
Je ne sais pas ce que je fais mal! Je suivais ce fil de discussion:
Inverser l'ordre des mots d'une chaîne sans str.split () autorisé
et plus précisément cette réponse:
>>> s = 'This is a string to try'
>>> r = s.split(' ')
['This', 'is', 'a', 'string', 'to', 'try']
>>> r.reverse()
>>> r
['try', 'to', 'string', 'a', 'is', 'This']
>>> result = ' '.join(r)
>>> result
'try to string a is This'
et adapter le code pour lui donner une entrée. Mais quand je l'ai couru, il a dit l'erreur ci-dessus. Je suis un novice complet, alors pourriez-vous me dire ce que signifie le message d'erreur et comment le corriger.
Code ci-dessous:
import re
list1 = input ("please enter the list you want to print")
print ("Your List: ", list1)
splitlist1 = list1.split(' ')
tobereversedlist1 = splitlist1.reverse()
reversedlist = ' '.join(tobereversedlist1)
yesno = input ("Press 1 for original list or 2 for reversed list")
yesnoraw = int(yesno)
if yesnoraw == 1:
print (list1)
else:
print (reversedlist)
Le programme doit prendre une entrée comme les pommes et les poires, puis produire une sortie poires et pommes.
L'aide serait appréciée!
splitlist1.reverse()
, comme beaucoup de méthodes de liste, agit sur place et renvoie donc None
. Donc, tobereversedlist1
est donc nul, d’où l’erreur.
Vous devriez passer splitlist1
directement:
splitlist1.reverse()
reversedlist = ' '.join(splitlist1)
string join doit satisfaire l'objet de connexion à itérer (liste, tuple)
splitlist1.reverse () renvoie Aucun, aucun objet ne supporte l'itération.