如何使用Python中的第n-(n-1)个术语?
我想知道如何在列表中找到第n项-(n-1)项。我知道这应该很简单,但我只是在应用上遇到了麻烦。因此,给定如何使用Python中的第n-(n-1)个术语?,python,Python,我想知道如何在列表中找到第n项-(n-1)项。我知道这应该很简单,但我只是在应用上遇到了麻烦。因此,给定[0,2,4,6,5]的输入,函数应该返回[0,2,2,2,-1]。我的解决方案(不起作用)如下: def cost_to_diff (stocks): for i in range(i+1): stock[i] = stock[i] - stock[i-1] print stock 为什么不能按预期工作?您的错误是重置了列表中的ith元素,因此在下一
[0,2,4,6,5]
的输入,函数应该返回[0,2,2,2,-1]
。我的解决方案(不起作用)如下:
def cost_to_diff (stocks):
for i in range(i+1):
stock[i] = stock[i] - stock[i-1]
print stock
为什么不能按预期工作?您的错误是重置了列表中的
i
th元素,因此在下一个循环迭代中,您可以访问它的更改值
这将打印您需要的内容
def cost_to_diff (stocks):
for i in range(1, len(stocks)):
print stocks[i] - stocks[i-1]
如果要打印列表,请执行以下操作
def cost_to_diff (stocks):
diff = []
for i in range(1, len(stocks)):
diff.append(stocks[i] - stocks[i-1])
print diff
或
我还建议你试着完成这些任务。我会做好的。特别是如果你在玩股票数据,numpy会比列表快得多。此外,对于股票数据,通常使用数据帧,因此您需要研究的是数据帧,您需要的功能也是数据帧。您的错误是您重置了列表的第i个元素,因此在下一个循环迭代中,您可以访问它的更改值 这将打印您需要的内容
def cost_to_diff (stocks):
for i in range(1, len(stocks)):
print stocks[i] - stocks[i-1]
如果要打印列表,请执行以下操作
def cost_to_diff (stocks):
diff = []
for i in range(1, len(stocks)):
diff.append(stocks[i] - stocks[i-1])
print diff
或
我还建议你试着完成这些任务。我会做好的。特别是如果你在玩股票数据,numpy会比列表快得多。此外,对于股票数据,通常使用数据帧,因此需要研究的内容和所需的函数也是如此。您使用了错误的范围。你需要找出股票清单的长度,然后建立相应的范围
differences = []
for i in range(len(stocks) - 1):
differences.append(stock[i+1] - stock[i])
print differences
然而,有一种更好的方法可以做到这一点。Python有几个内置函数可以帮助您轻松地完成这类工作。使用zip函数获取元素,而不会与索引混淆
differences = []
for a, b in zip(l, l[:1]):
differences.append(b-a)
例如:
my_list = [0, 3, 4, 5, 7]
print zip(my_list, my_list[1:])
这将产生输出
[(0, 3), (3, 4), (4, 5), (5, 7)]
之后只需减去元素。使用了错误的范围。你需要找出股票清单的长度,然后建立相应的范围
differences = []
for i in range(len(stocks) - 1):
differences.append(stock[i+1] - stock[i])
print differences
然而,有一种更好的方法可以做到这一点。Python有几个内置函数可以帮助您轻松地完成这类工作。使用zip函数获取元素,而不会与索引混淆
differences = []
for a, b in zip(l, l[:1]):
differences.append(b-a)
例如:
my_list = [0, 3, 4, 5, 7]
print zip(my_list, my_list[1:])
这将产生输出
[(0, 3), (3, 4), (4, 5), (5, 7)]
之后需要做的就是减去元素。以下代码返回
[2,2,2,-1]
,因为我不明白为什么第一个元素会得到0
您是否假设第一个-1元素也是0
len('list')
将给出列表的长度
范围(开始、结束)
将为您提供一个范围
由于您希望在for循环中的第二个元素(index=1
)开始迭代,因此start将是1,end将是股票列表的长度
stock = [0,2,4,6,5]
result = []#create an empty list for the results
for i in range(1,len(stock)):#set the iteration steps, will be 1,2,3,4 in this case
result.append(stock[i] - stock[i-1])#By using stack[i] = ... you will overwrite the ith element
print result
下面的代码返回
[2,2,2,-1]
,因为我不明白为什么第一个元素会得到0
您是否假设第一个-1元素也是0
len('list')
将给出列表的长度
范围(开始、结束)
将为您提供一个范围
由于您希望在for循环中的第二个元素(index=1
)开始迭代,因此start将是1,end将是股票列表的长度
stock = [0,2,4,6,5]
result = []#create an empty list for the results
for i in range(1,len(stock)):#set the iteration steps, will be 1,2,3,4 in this case
result.append(stock[i] - stock[i-1])#By using stack[i] = ... you will overwrite the ith element
print result
可能重复-您认为
i在范围(i+1)
中如何工作?不能在同一行中使用和定义一个值,例如:n=0时如何定义函数的可能重复?可能重复-您认为范围(i+1)内的i将如何工作?一个值不能在同一行中使用和定义,就像当n=0
时您如何定义函数的可能重复一样?假设您不需要以前的库存
值,那么这将改变列表,产生这个-[2,2,2,-1,5]
,而不是[0,2,2,2,2,-1]
。貌似优雅,假设你不需要之前的股票
值,这将改变列表,产生这个-[2,2,2,-1,5]
,而不是[0,2,2,2,2,-1]
。