Python中的反向列表

时间:2017-10-18 02:54:55

标签: python list

所以我正在尝试用Python创建一个程序:

A)提示用户输入一定数量的数字 B)然后将这些数字存储在列表中并以相反的顺序打印它们。

这是我的代码:

for numbers in range (1,4):
    print("Please enter a number.")
    numbers = input()
    numbersList = list(reversed(str(numbers)))
    print(numbersList)

当我运行它时,它只打印<list_reverseiterator object at 0x105447da0>。即使我在代码中没有添加“反向”的情况下尝试它,而不是像我想要的那样打印以相反顺序输入的所有数字的列表,它会以列表格式输出最新的数字。因此,如果我为一个数字输入'4',它只会打印:['4']。不知道为什么会这样做。任何帮助,将不胜感激。感谢。

3 个答案:

答案 0 :(得分:1)

尝试这样的事情:

numbersList = []
for numbers in range (1,4):
    print("Please enter a number.")
    numbersList.append(input())
numbersList.reverse()
print(numbersList)

首先,您必须定义numbersList。然后,在循环中将值附加到in中,最后将其打印出来。

您的问题是,每次运行for循环时都定义了列表(在上面的示例中为3次),因此它只有最后一个值。 (另外,你也想在每次迭代时将它打印出来)。

此外,还有“兴趣点” - 您可以使用input("User prompt here: ")来避免使用print()之前的行。

答案 1 :(得分:1)

如果我理解正确,这就是您正在寻找的:

numbers = []
for i in range (1,4):
    print("Please enter a number.")
    numbers.append(input())

numbersList = str(numbers)
numbersList.reverse()
print (numbersList)

如评论所述,i是由range命令生成的迭代器。从用户收集3个号码的一种方法是将它们附加到列表中,在这种情况下为numbers

之后,您可以在循环外处理列表。一旦完全创建列表再次指向循环外,它似乎更可行。我使用Python 2.7,因此解决方案与初始解决方案略有不同,但结果与预期一致 - 首先它使用map将所有数字转换为字符串,然后使用{{1}将列表转换为适当的列表}。

答案 2 :(得分:1)

l=[]
for _ in range(1,5):
    l.append(int(input("enter the number: ")))
print(l[::-1])