您好,第一次在这个论坛上提问。
我有这个问题的麻烦。
编写一个函数doubles()
,该函数将一个整数列表作为输入并输出列表中的整数,该整数恰好是列表中先前整数的两倍,每行一个。
因此,我最初尝试做的是编写一个使用索引遍历整数列表的代码
如:
integers = []
def doubles(integers):
index = 0
while index < len(integers):
if index == (2*(index+1)):
print(index)
doubles([3,0,1,2,3,6,2,4,5,6,5])
我认为我编写的代码就是这样。虽然索引小于整数列表的长度,但是如果索引等于下一个索引的两倍,它将打印出该数字。但是我似乎没有得到想要的结果。谢谢。
最佳答案
您正在做一些需要修复的事情。
您想查看列表integers
中的项目,而不是这些项目的索引。您可以通过查看integers[n]
来实现,其中n是索引。
您想与列表中的上一个值进行比较,而不是下一个,因此您应该将integers[index]
与integers[index-1]
进行比较,而不是使用index + 1
表示法
您应该遍历索引列表。在此示例中,您的while
循环将永远不会终止。您可以执行while index < len(integers)
,然后每次将索引递增1,但是执行for循环更容易。
尝试这个:
def doubles(integers):
index = 0
for index in range(1,len(integers)):
if integers[index] == 2*integers[index-1]:
print(integers[index])
关于python - 函数Doubles()Python请求助手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26242732/