반복적인 변수 정할때 어떻게 해야하나요?
조회수 1469회
변수1 = '홍길동'
변수2 = '김갑환'
..
변수n = '장거한'
========================
변수1_1 = '홍길동'
변수1_2 = '김갑환'
변수2_1 = '최번개'
..
변수n_n = '장거한'
위에처럼 변수뒤에 1~n, 1_1, 1_2 ~ n_n ... 등등으로 변수를 만들때 일일이 넣지 않고 반복문으로 변수를 만들어 값을 대입하는 방법이 있는지 궁금합니다.
리스트 = ['홍길동','김갑환'....]
for i in range(10):
변수{}.format(i) = 리스트[i]
1 답변
-
리플렉션 기능을 활용해볼 수 있습니다
파이썬은 변수와 같이 '이름' '값' 과 같이 쌍이 되는 경우 dict로 관리를 합니다.
>>> import sys >>> mod = sys.modules[__name__] >>> L = ['홍길동','김갑환'] >>> for k, v in enumerate(L): ... setattr(mod, 'v{}'.format(k), v) ... >>> v0 '홍길동' >>> v1 '김갑환' >>> globals() {'L': ['홍길동', '김갑환'], '__builtins__': <module 'builtins' (built-in)>, '__doc__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__name__': '__main__', '__package__': None, '__spec__': None, 'k': 1, 'mod': <module '__main__' (built-in)>, 'pyscripter': <module 'pyscripter'>, 'sys': <module 'sys' (built-in)>, 'v': '김갑환', 'v0': '홍길동', 'v1': '김갑환'}
댓글 입력