如何在for循环中创建一份列表,使得我的三个爱好都在其中?

2024-10-03 21:35:22 发布

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

我想创建一个for循环,提示用户输入他们的爱好三次,并将爱好附加到爱好列表中。 最后,爱好列表应该包含所有三个爱好

这就是我所尝试的:

for x in range(3):
    hobbies = input('What is your hobby?')
    print(hobbies)

list(x) #here i get: 'int' object is not iterable

这似乎行不通

看完答案后,下面是我现在尝试的:

lst= []
lst = [input('What is your hobby?') for _ in range(3)]
lst.append(lst)

print(lst)

所以答案在列表中,但有一件事->;[…]

What is your hobby?as
What is your hobby?q2we
What is your hobby?sfd
['as', 'q2we', 'sfd', [...]]

我该如何摆脱这个[…]


Tags: 答案in列表forinputyourisas
3条回答

看看下面的代码,它是正常工作。实际上,您还没有将输入附加到原始数组中,这就是您没有得到所需结果的原因

hobbies = []

for x in range(3):
    # storing the values in the temporary variable and appending it into the original array
    temp = input('What is your hobby?')
    hobbies.append(temp)
print(hobbies)

请注意,新问题要分开发布。不要把它们编辑到这个上面

所以问题是,你应该使用这两个命令中的任何一个。基本上,您所做的是通过执行lst = [input('What is your hobby?') for _ in range(3)]来定义一个列表

在定义列表之后,您已经通过执行lst.append(lst)将名为lst的列表附加或添加到自身中 如果删除这一行,代码应该是好的

代码行lst = [input('What is your hobby?') for _ in range(3)]基本上做的事情与:

lst = []
for x in range(3):
    hobbies = input('What is your hobby?')
    l.append(hobbies)

所以你不必两个都做

另一方面,请不要误会,但我认为您应该参考python的指南或课程,更好地阐明基本概念。希望这有帮助:)

首先,你要做的是把变量x作为一个列表,在它的作用域之外。x是一个整数,用于迭代由range(3)定义的一组数字 相反,你应该做的是创建一个空列表

l = []

然后在for循环内将所有元素附加到l

您的代码应该是这样的:

l = []
for x in range(3):
    hobbies = input('What is your hobby?')
    l.append(hobbies) #adding each hobby  to the list 'l'

print(hobbies) #printing out the whole list.

相关问题 更多 >