如何使用此功能返回用户输入的列表的所有索引



使用此代码,我希望获得用户在控制台中引入的内容的输出numbers_x,以通过下面的函数进行迭代,但输出只返回预期列表的最后一个元素,我如何获得列表的所有索引?

def listas(n):
lst = []
for i in range(0,n):
elementos = int(float(input(f"Enter your number {i+1}:    ")))
list(lst)
lst.append(elementos)
print(type(lst))
return lst

numbers_x = listas(n=(int(input("Enter the total numbers of your list: "))))
print(numbers_x)

##输出##

Enter the total numbers of your list: 4
Enter your number 1:    1
Enter your number 2:    2
Enter your number 3:    3
Enter your number 4:    4
<class 'list'>
[4] #I expect that the output here, was [1,2,3,4]

您在代码中的错误位置将项目追加到列表中。记住,for循环运行n次,每次用户输入一个数字时,你必须在for循环中的下一个项目运行之前将其添加到列表中:

def list_input_retrieval(n):
my_list = []
for i in range(0, n):
print('got to for loop: i is {index}'.format(index=i))
elements = int(float(input(f"Enter your number {i+1}:    ")))
my_list.append(elements)
return my_list

input_list = list_input_retrieval(5)
print(input_list)

请注意,同时执行intfloat是多余的,因为您的函数没有按预期对数字进行舍入。你可以删除float,我认为它也会起作用:

$ python3 script.py 
Enter your number 1:    5.6
Enter your number 2:    7.6
Enter your number 3:    5.2
Enter your number 4:    6.8
Enter your number 5:    8.9
[5, 7, 5, 6, 8]

你可以试试这个:

def listas(n):
return [int(input(f"Enter your number {i+1}: ")) for i in range(n)]

numbers_x = listas(int(input("Enter the total numbers of your list: ")))
print(numbers_x)

它将向用户请求列表元素的n,并将值传递给函数listas。用户将使用列表理解根据n数字输入lista的值,numbers_x将返回listas的值

或者你可以使用一个没有功能的内衬:

numbers_x = [int(input(f"Enter your number {i+1}: ")) for i in range(int(input("Enter the total numbers of your list: ")))]
print(numbers_x)

输出:

Enter the total numbers of your list: 4
Enter your number 1: 1
Enter your number 2: 2
Enter your number 3: 3
Enter your number 4: 4
[1, 2, 3, 4]
Process finished with exit code 0

最新更新