Python 对数生成的项目值

Python 对数生成的项目值,python,algorithm,math,Python,Algorithm,Math,我需要根据项添加到列表中的量来计算log()列表中项的值。 例如,我有这样一个列表(为了简单起见,使用整数而不是浮点) 我想要一个类似于[2,2,1,1,1,0,1,0,1]的列表,也就是说,它需要查看列表中的前一个元素才能获得值 这将像示例一样使用,但列表要大得多。因此,最终的解决方案将是一种数学方法,而不是创建python函数来完成这项工作。看起来您可能需要列表中项目之间的差异 使用python进行此操作的一个简单方法是 [int(math.log(1 + n) * 4) - int(mat

我需要根据项添加到列表中的量来计算log()列表中项的值。 例如,我有这样一个列表(为了简单起见,使用整数而不是浮点)

我想要一个类似于
[2,2,1,1,1,0,1,0,1]
的列表,也就是说,它需要查看列表中的前一个元素才能获得值


这将像示例一样使用,但列表要大得多。因此,最终的解决方案将是一种数学方法,而不是创建python函数来完成这项工作。

看起来您可能需要列表中项目之间的差异

使用python进行此操作的一个简单方法是

[int(math.log(1 + n) * 4) - int(math.log(n) * 4) for n in range(1, 10)]
既然您说过“(为了简单起见,使用整数,而不是浮点数)”,我假设实际问题不包括
int
部分?在这种情况下,您可以这样进行数学简化:

[4 * (math.log(1 + n) - math.log(n)) for n in range(1, 10)]

[4 * math.log((1 + n) / n) for n in range(1, 10)]
通过对数的属性。

尝试以下操作:

In [1]: items = [2, 4, 5, 6, 7, 7, 8, 8, 9]

In [2]: items[:1] + [j - i for i, j in zip(items, items[1:])]
Out[2]: [2, 2, 1, 1, 1, 0, 1, 0, 1]

In [3]: 

我不知道你的方法有什么问题。我不知道你想要什么,
我想要一个类似[2,2,1,1,0,0,1,0,1]的列表,也就是说,它需要查看列表中的前一个元素才能得到值。如果你想要一个
数学
方法,我会将其标记为offtopic,并将您重定向到正确的StackExchange站点。如果您想要Python代码,我们需要比
更精确的东西,它需要查看列表中的上一个元素以获得值。
f(范围(1,10))的实际期望值是
[2,2,1,1,0,0,1,0,1]
?。如果是,你是怎么想到的?若它是离散微分,我认为它对于第一个元素是未定义的,输出的预期计数是8?(至少Matlab/numpy就是这么做的)。你的意思是想知道列表中项目之间的差异吗?这似乎与
log
无关,但请看一看,例如,我猜您的示例输出不正确,可能应该是
[2,2,1,1,1,0,1]
In [1]: items = [2, 4, 5, 6, 7, 7, 8, 8, 9]

In [2]: items[:1] + [j - i for i, j in zip(items, items[1:])]
Out[2]: [2, 2, 1, 1, 1, 0, 1, 0, 1]

In [3]: