'** +'运算符在python中的行为是什么?

时间:2018-01-30 12:05:53

标签: python python-3.x operators

我是python的新手,并试图了解下面的内容。

[i**+1 for i in range(3)]

我知道i += 1表示i = i + 1**+是什么意思? 我知道**意味着指数,但上面列表理解的输出令我困惑。

2 个答案:

答案 0 :(得分:5)

这种混乱是由于PEP8所暗示的没有周围运营商的空白。

[i**+1 for i in range(3)][i ** +1 for i in range(3)]相同,与[i ** 1 for i in range(3)]相同。

[i**+1 for i in range(3)]的输出为[0, 1, 2],这是预期的输出。

**+1只是** +1,它是1 st 的正幂。 +在这里是多余的。

答案 1 :(得分:0)

这类似于: i 的 1 次方,即 +1

[i**+1 for i in range(3)]

注意:+1 不是这里的补充。这是我的力量

import numpy as np

def resample_sum(inp, window):
    return np.sum(np.reshape(inp, (len(inp)//window, window)), axis=1)

所以答案是:[0, 1, 2]