私信  •  关注

Davide_sd

Davide_sd 最近创建的主题
Davide_sd 最近回复了
4 年前
回复了 Davide_sd 创建的主题 » Python中的极限和求和

使用Python时,乘法需要显式编写。在你的情况下,你需要写作 2*k .

编辑:很明显,这是您第一次使用Python,并讨论了数字库和符号库之间的区别。在这里,我将讨论SymPy和我处理您的问题的方式:

from sympy import var, Sum, pi, factorial, limit
# create symbols n and k
var("k, n")
# create a symbolic expression.
# NOTE: I have replace the upper limit n with infinity
expr1 = Sum((pi / 2)**(2 * k) / factorial(2 * k), (k, 0, oo))
expr1.doit()
# output: cosh(pi/2)

# If you wanted to compute the limit of the original expression:
expr2 = Sum((pi / 2)**(2 * k) / factorial(2 * k), (k, 0, n))
limit(expr2, n, oo)
# It throws an error!
4 年前
回复了 Davide_sd 创建的主题 » 从Python中随机选择的两个列表元素创建列表

里面的每个元组 values 包含两个列表。第一个列表的索引为0,第二个列表的索引为1。

我们可以使用 random.randint(0, 1) 生成一个二进制选择,0或1,这将是我们选择元素的列表的索引。

import random
res = [[v[random.randint(0, 1)][k] for k in range(len(v[0]))] for v in value]

让我们分解列表理解语法:

  • 首先,我们循环遍历包含在 value 具有 for v in value .
  • 然后 for k in range(len(v[0])) 我们循环计算每个元组的第一个列表的元素数(这里第一个或第二个并不重要,因为两个列表的元素数相同)。
  • 然后 v[random.randint(0, 1)][k] 我们随机选取第一个或第二个列表,并从该列表中提取第k个值。