使用此代码,我希望获得用户在控制台中引入的内容的输出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)
请注意,同时执行int
和float
是多余的,因为您的函数没有按预期对数字进行舍入。你可以删除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