1

我只想计算字符串的某些元素(其索引值 + 1 在N中)的乘积。

这工作正常:

start = 1
end = 1000000
N = (1, 10, 100, 1000, 10000, 100000, 1000000) 
product = 1

concatenated_numbers_str = ''.join([str(x) for x in range(1, end + 1)])

for n in N:
    product *= int(concatenated_numbers_str[n - 1])
print(product)

但是有什么更好的方法来做到这一点?

谢谢

4

1 回答 1

0

我喜欢 Pavel 的回答,但应该是 n-1 而不是 n:

import operator
end = 1000000
N = (1, 10, 100, 1000, 10000, 100000, 1000000)
concatenated_numbers_str = ''.join([str(x) for x in range(1, end + 1)])
print reduce(operator.mul, [int(concatenated_numbers_str[n-1]) for n in N], 1)
于 2012-05-15T16:12:48.163 回答