Python中的反向列表

2024-05-06 10:43:25 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我尝试用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>。即使我没有在代码中添加“reversed”就尝试了,它也不会像我希望的那样打印一个以相反顺序输入的所有数字的列表,而是以列表格式输出最近输入的数字。所以如果我输入'4'作为一个数字,它只会打印:['4']。不知道为什么会这样。任何帮助都将不胜感激。谢谢。你知道吗


Tags: 用户in程序密码列表for顺序range
3条回答

尝试以下操作:

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()行。你知道吗

如果我理解正确,这就是你要找的:

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。你知道吗

之后,您可以在循环外处理列表。一旦列表被完全创建,它再次指向循环之外,那么反转列表似乎更可行。我使用的是Python2.7,因此解决方案与最初的解决方案有点不同,但结果与预期的一样-首先它使用map将所有数字转换为字符串,然后使用reverse反转列表。你知道吗

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

相关问题 更多 >