2012-09-30 4 views
0

"lot1", "lot2", "lot3"과 같이 많은 형식의 문자열이 많이 있습니다. 사용할 변수를 결정하기 위해 함수 인수를 사용하고 싶습니다. 다음은 의사 예제입니다.변수에서 변수를 설정 하시겠습니까?

def printlot(someInt): 
    print lot%i % (someInt) 

기본적으로 여러 문자열을 사용하여 다른 문자열의 이름을 지정하고 싶습니다. 이것은 충분히 단순 해 보이지만, 필자는 2 년 동안의 파이썬 시대에 그것을 어떻게하는지 배웠다.

+4

그것은 일반적으로 할 수있는 나쁜 일이 있다는 것을 이유를. –

+1

대신 사전을 사용하십시오. 'lots'라는 명칭을 만들고'lots [i]'를 통해 값에 접근하십시오. – BrenBarn

답변

1

당신은 vars 내장 함수를 사용하여 사전으로 보이는 모든 변수에 액세스 할 수 있습니다

vars()['lot%d' % someInt] 

다른 범위는 globals 또는 locals에 액세스 할 수 있습니다.

그러나 일반적으로 이는 "비조직적 인"동작으로 간주됩니다. 비슷하게 이름 붙여진 많은 변수를 생성하는 대신, 더 파이썬 적 접근법은 목록이나 사전을 만드는 것입니다.

2

nneonneo가 말한 바는 정확하지만 실제로는 dict을 명시 적으로 사용하려고합니다. 즉, 당신은이 작업을 수행 할 수 :

이 대신
lot_data = {'lot1': 10, 'lot2': 20, 'lot3': 30} 
i = 2 
print lot_data['lot%d' % i] 

:

lot1 = 10 
lot2 = 20 
lot3 = 30 
i = 2 
print vars()['lot%d' % i] 
관련 문제