Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 做这件事的蟒蛇式方法?(将字符串中的某些元素相乘)_Python - Fatal编程技术网

Python 做这件事的蟒蛇式方法?(将字符串中的某些元素相乘)

Python 做这件事的蟒蛇式方法?(将字符串中的某些元素相乘),python,Python,我只想计算字符串中某些元素(其索引值+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在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)
但有什么更好的方法可以做到这一点呢


谢谢

我喜欢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)

@Pavel能否请您详细说明如何使用
reduce()
来制作产品?要相乘的数字在单独的列表中不可用。您如何从
串联数字列表中提取所需整数,并使用
reduce()
将它们相乘?
[int(串联数字[n])表示n中的n]