• [기본] 파이썬 문자+숫자로 조합된 변수를 for문에 사용하는 질문입니다.2020.06.17 PM 12:25

게시물 주소 FONT글자 작게하기 글자 키우기

변수가 a0, a1, a3, a4입니다

이걸 for문에 사용하려고 합니다.

for i in range():

    a+i ???

    a+[i]???


저런식으로 하면 당연히 에러나겠죠?

어떻게 해야 a...변수들을 순차적으로 반복문안에서 써먹을수 있나요?

댓글 : 7 개
  • v41n
  • 2020/06/17 PM 12:38
exec('a' + str(1) + ' = 30')
상황에 따라, exec, eval, compile 사용... 이긴 하나... 이런 방법은 그닥 추천하고싶진 않네요....
배열 쓰는게 편할듯요
변수를 배열에 넣고 for로 호출해서 쓰세요.
동적으로 변수를 생성해야 한다면 찾아보니 setattr(mod, ‘var_{}’.format(i), i) 라는게 있네요
# a 변수가 리스트라면 아래와 같이 하는게 파이썬 다운 코드
a = ['a', 'b', 'c', 'd']
for c in a:
print(c)
print(72*'-')

# range를 써서 index로 접근해도 되지만 위 코드가 더 깔끔한 표현
for i in range(len(a)):
print(a[i])
print(72*'-')

# 만약 a 변수가 리스트가 아니라 님 조건처럼 a0, a1, a3, a4 식이라면
# for로 접근하려면 문자열로 변수명을 연산한 후 eval를 써야 할 듯
a0 = 'a'
a1 = 'b'
a3 = 'c'
a4 = 'd'
for i in [0, 1, 3, 4]:
print(eval-'a{}'.format(i)))

댓글은 들여쓰기가 잘 안되네요 for 블럭 안에는 들여쓰기 해야 함
감사합니다 !
와 신기한 파이선나라
역시 파이썬은 파이썬답게 코딩을 해야겠군요
댓글주신 모든분들 감사합니다~
친구글 비밀글 댓글 쓰기