반복적인 변수 정할때 어떻게 해야하나요?

변수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답변

  • 좋아요

    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': '김갑환'}
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.