[python] for문에서 정수가 들어간 변수 호출 및 생성
들어가기에 앞서 열심히 배우고 있는 전공생이므로, 파이썬 지식이 깊지 않다.
따라서 이 글을 가볍게 참고용으로 확인하면 좋을 것 같다...ㅎ
반복문의 한 종류인 for문의 형식은 아래와 같다.
for 변수 in 반복가능한 객체:
편의를 위해 '변수'를 i라고 지칭하겠다.
파이썬에서 for문을 사용할 때
간혹 i를 사용하여 정수가 들어간 변수를 호출하거나 생성하고 싶을 때가 있다.
어떻게 코드를 작성해야 하는지 살펴보자.
1. for문에서 정수가 들어간 변수 호출
예를 들어 a0, a1, a2, ..., a5 변수의 값을 출력하고 싶다면 어떻게 할 것인가?
하나씩 출력하는 것도 하나의 방법이지만, for문을 사용하면 두줄로 실행이 가능하다.
그러나 문제는 정수인 i를 어떻게 활용하느냐 이다.
1. str() 함수를 사용해 i에 할당된 정수를 문자열로 바꾼다.
2. 덧셈을 통해 문자와 문자를 이어적는다.
3. eval() 함수를 통해 문자열을 실행한다.
즉, 문자열이었던 "a1"을 변수 a1으로 반환해준다.
(eval() 함수에 대한 자세한 내용은 아래 링크를 첨부하겠다.)
실행 코드
a0 = 0
a1 = 1
a2 = 2
a3 = 3
a4 = 4
a5 = 5
for i in range(6):
print(eval('a'+str(i)))
결과
0
1
2
3
4
5
2. for문에서 정수가 들어간 변수 생성
예를 들어 변수 a0, a1, a2, ..., a5에 (규칙성이 있는) 값을 저장하고 싶을 수 있다.
그럴 때 편리하게 for문을 사용하면 된다.
그러나 정수인 i를 어떻게 활용하느냐이다.
동일하게
1. str() 함수를 사용해 i에 할당된 정수를 문자열로 바꾼다.
2. 덧셈을 통해 문자와 문자를 이어적는다.
그리고
3. global() 이나 locals() 함수를 이용해 전역(지역)변수들을 딕셔너리 형태로 반환한다.
상황에 맞게 global과 locals를 선택하면 될 것 같다.
실행 코드
for i in range(6):
globals()['a'+str(i)] = i
print(a0)
결과
0
이렇게 for문에서 정수가 들어간 변수를 호출하거나 생성하는 방법을 확인해 보았다.
나는 종종 사용할 때가 있어서 찾아보기 편하게 정리해보았다.
다른 분들에게도 유용하게 사용되면 좋겠다.
참고한 링크는 아래 첨부하겠다.
[Python] 할당된 변수들을 반복문으로 실행하기. (eval 함수 이용)