‘Kan alleen deelnemen aan een herhaalde’ python-fout

Ik heb dit bericht over herhaalde python-fouten al bekeken:

‘Kan alleen itereerbaar’ Python-fout

Maar dat was ongeveer de fout “kan geen iterable toewijzen”. Mijn vraag is waarom python me vertelt:

"list.py", line 6, in <module>
    reversedlist = ' '.join(toberlist1)
TypeError: can only join an iterable

Ik weet niet wat ik verkeerd doe! Ik volgde dit draadje:

Omgekeerde woordvolgorde van een tekenreeks met geen str.split() toegestaan

en specifiek dit antwoord:

>>> 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'

en pas de code aan zodat deze een invoer heeft. Maar toen ik het uitvoerde, zei het de bovenstaande fout. Ik ben een complete beginner, dus zou je me alsjeblieft kunnen vertellen wat de foutmelding betekent en hoe ik het kan oplossen.

Code hieronder:

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)

Het programma moet een invoer zoals appels en peren aannemen en vervolgens een uitvoer peren en appels produceren.

Hulp wordt op prijs gesteld!


Antwoord 1, autoriteit 100%

splitlist1.reverse()werkt, net als veel andere lijstmethoden, ter plaatse en retourneert daarom None. Dus tobereversedlist1is daarom Geen, vandaar de fout.

Je moet splitlist1direct doorgeven:

splitlist1.reverse()
reversedlist = ' '.join(splitlist1)

Antwoord 2, autoriteit 5%

string join moet voldoen aan het te herhalen verbindingsobject (lijst, tuple)

splitlist1.reverse() retourneert None, None object ondersteunt iteratie niet.

Other episodes