Как создать программу, которая предложит пользователю ввести список, затем программа обратится к списку и распечатает его для пользователя

Как я могу создать программу, которая предложит пользователю ввести список, затем попросить программу перевернуть список и распечатать его для пользователя. Это обращение должно быть ручным и не использовать функцию reverse(). Пока у меня есть...

def main():
    print("This program will reverse your list!")
    list = []
    userlist = input( "Enter your list:")
    list.append(userlist) 
    reverselist = userlist[::-1]
    print("Your list in reverse is: ", reverselist)
    input ("Press enter to close program")
main()

Это работает, но не хранит список, это скорее строка. И если вы введете яблочный банан, он выплевывает ананаб эльпа.

4 ответа

def main():
    print("This program will reverse your list!")

    # get a list of strings
    items = []
    while True:
        s = input("Next item (or <Enter> to quit): ")
        if s:
            items.append(s)
        else:
            break

    # make a reversed copy of the list
    items_len = len(items)
    smeti = [0] * items_len
    for i,val in enumerate(items)
        smeti[items_len - i - 1] = val

    print("Your list in reverse is: {}".format(smeti))
    input("Press enter to close program")

if __name__=="__main__":
    main()

Вы перевернули строку, выполнив userlist[::-1] вот почему banana читается как ananab, Что вы действительно должны сделать, если разделить пробелами и поменять местами слова.

Попробуйте изменить:

userlist = input( "Enter your list:")
list.append(userlist) 
reverselist = userlist[::-1]

чтобы:

userlist = input( "Enter your list:")
reverselist = " ".join(reversed(userlist.split()))    

Полезная "ручная" идиома для обращения к списку - это цикл while:

>>> li
[0, 1, 2, 3, 4]
>>> il=[]
>>> while li:
...    il.append(li.pop())
... 
>>> il
[4, 3, 2, 1, 0]

Итак, ваша программа:

def main():
    print("This program will reverse your list!")
    userlist = input( "Enter your list separated by spaces:")
    li=userlist.split()
    reverselist=[]
    while li:
        reverselist.append(li.pop())
    print("Your list in reverse is: ", reverselist)

main()

Когда запустить:

This program will reverse your list!
Enter your list separated by spaces:apple banana peach
Your list in reverse is:  ['peach', 'banana', 'apple']
list = []
def reverselyst(list):
    print ("Please enter list values one after the other or press space to stop:")
    while True:
        userinput = input()
        if userinput != ' ':
            list.append(userinput)
        else:
            print (list)
            break
    print("the reverse of list is" + str(list[-1: :-1]))
reverselyst(list)
Другие вопросы по тегам