2012-05-15 4 views
1

문자열의 특정 요소 (색인 값 +1이 N)의 곱을 계산하고 싶습니다.이것을하는 Pythonic 방법? (문자열의 특정 요소를 곱하십시오)

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) 

을하지만이 할 수있는 더 좋은 방법은 무엇입니까 :

이 잘 작동?

내가 파벨의 답변을 좋아하는 당신에게

+0

http://stackoverflow.com/questions/7948291/python-product-in- built-function – Pavel

+0

@Pavel 제품을 만들기 위해'reduce()'를 어떻게 사용하는지 자세히 설명해 주시겠습니까? 함께 곱하는 숫자는 별도의 목록에서 함께 사용할 수 없습니다. 'concatenated_numbers_str'리스트에서 필요한 정수를 어떻게 추출하고'reduce()'를 사용하여 그것들을 곱하면 될까요? –

+0

'[N의 n에 대한 int (concatenated_numbers_str [n])] N – Pavel

답변

0

감사하지만, 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) 
관련 문제