숫자 목록이 있습니다 (기본 예) [50,100,150,200,250]
지정된 인덱스에서 각 숫자를 지정된 양만큼 증가 (또는 감소)해야합니다. 나는 두 가지 방법으로이 작업을 수행 할 수 있었다 :특정 포인트에서 목록의 파이썬 증분 숫자
from itertools import islice
l = [50,100,150,200,250]
start_increment_index = 3
l[start_increment_index:] = [e+100 for e in l[start_increment_index:]]
print (l)
l = [50,100,150,200,250]
l[start_increment_index:] = [e+100 for e in islice(l,start_increment_index,len(l))]
print (l)
모두 인쇄 : [50, 100, 150, 300, 350]
그러나, 내 진짜 목록 숫자의 수백만을 포함하고이 작업이 다른 인덱스와 다른 증가/감소합니다 반복적으로 수행한다. 파이썬리스트를 사용하여 이것을하는 더 빠른 방법이 있을까요? 나는이 문제를 다루기 위해 내 자신의 C/C++ 확장을 작성하려고 애썼다.
편집 : 이것은 일반적으로 파이썬에 유용한 모듈일까요? 매개 변수를 취할 수있는 C로 작성된 함수를 갖는 (python_list_object, increment_amount, start_index, end_index)
?
Python 질문을하는 경우 관련이없는 언어 태그 (예 : C 또는 C++)를 추가하지 마십시오. C 또는 C++ 모듈을 작성한 다음 * 관련 * 태그를 사용하여 관련 질문을 할 수 있습니다. –
Python의 배열 구조를 확인하십시오. 숫자 값의 효율적인 배열입니다. – Vinny
최상의 성능이 필요한 경우 C/C++ 프로그램을 작성해야합니다 (알고리즘은 작성이 간단하고 스레드 최적화가 가능할 수도 있음). 그렇지 않으면이 목표를 달성하려면이 스크립트를 계속 사용하고 응답을 기다리십시오. 일반적으로 말하자면 숫자 (수백만 또는 수조와 같은)의 크기가 얼마나 큰지 그리고이 스크립트/프로그램을 얼마나 자주 사용한다고 생각하는지에 달려 있습니다. –