나는 파이썬 3에서 "거의 반복한다"라는 코드를 가지고 있고 그것을 줄이는 쉬운 방법을 찾고있다.파이썬 3에서 거의 반복되는 코드 줄이기
N 변수가있는 함수 f (x1, ..., xN)가 있습니다. 사용자는 변수 x5를 선택하고 다른 변수가 고정 된 f vs x5의 플롯을 얻습니다. 나는 항상 각각 다른 XI에 대해 다음을 수행, 손 N 기능에 의해 작성할 수 있습니다
def get_Array_To_Plot_x5(x1, ..., x5Start, x5End, numberOfX5, ..., xN):
return [f(x1, ..., xN) for x5 in numpy.linspace(xiStart, xiEnd, numberOfXi)]
가 그럼 난 사용자 입력에 따라 내 주요 스크립트에 적절한 get_Array_To_Plot_xi 기능 (이 예에서는 get_Array_To_Plot_x5)를 호출하는 것, 그리고 이 배열을 그립니다.
이 코드를 작성하는 더 좋은 방법이 있습니까? 이 스크립트를 나를위한 텍스트 파일로 작성하는 또 다른 코드를 작성할 수는 있지만 가능하다면 좀 더 우아한 솔루션을 기대합니다.
편집 :
def get SWaveEnergies(V0, mu, B_Zeeman, alpha, Delta, W, L, noOfLevels, a, t):
return some_floating_number
def SWave_vsMu(muStart, muEnd, noOfmu, V0, B_Zeeman, alpha, Delta, W, L, noOfLevels=6, a=1, t=1.0):
return [SWaveEnergies(V0, mu, B_Zeeman, alpha, Delta, W, L, noOfLevels, a, t) for mu in np.linspace(muStart, muEnd, noOfmu)]
: 여기
내가 (필자는 Kwant 라이브러리를 사용하여 S 파 위상 초전도체의 에너지 레벨을 계산하고 있습니다) 작성한 코드입니다 : 미친 물리학의 요청에 따라 샘플 코드 추가
다른 것으로 이것을 작성했습니다 : xiStart
, xiEnd
, noOfxi
. 사용자의 명령 행 입력은 내가 호출 한 기능을 결정합니다.
'x1 ... xN'은 단일 배열 또는 별도의 변수로 제공됩니까? –
적어도이 인수를 설정하는 방법과 함수를 호출하는 방법에 관해서는 좀 더 많은 컨텍스트를 제공하면이 기능을 이해하면 도움이 될 것입니다. –
원래 사용자는 선택한 것을 제외하고 모든 xi에 대해 단일 값을 제공합니다. 선택된 값에 대해, 그들은 효과적으로 배열 (또는 배열을 구성하기에 충분한 정보)을줍니다. –