관리 메뉴

커리까지

파이썬 문자열을 변수로 호출하기 본문

프로젝트/KBO 외국인 투수 스카우팅 최적화 경진대회

파이썬 문자열을 변수로 호출하기

목표는 커리 2021. 1. 10. 12:15
728x90
SMALL

eval()

  • 2011~2018년도 딕셔너리를 만들어서 저장해야했다. 그러면 총 8개의 딕셔너리 변수가 선언되어야 한다. 하나씩 코딩하기에 불편하니 for문을 돌려서 딕셔너리를 만들었다.
1
2
3
4
5
6
7
8
9
10
11
12
names=[]
def setName(cnt):
    global names
    for i in range (11,cnt+1):
        names.append('name_dict_{}'.format(i)) 
    for name1 in names:
        globals()[name1] = {}
        for i2 in name_list:
            globals()[name1][i2] = 0
        print(name1)    
        print(globals()[name1])    
setName(18)     
cs

10

  • 그러면 이렇게 for문을 돌면서 동적으로 변수가 선언되고 해당 변수에 정상적으로 값이 입려된다.
1
2
3
4
5
6
7
8
9
10
names
>
['name_dict_11',
 'name_dict_12',
 'name_dict_13',
 'name_dict_14',
 'name_dict_15',
 'name_dict_16',
 'name_dict_17',
 'name_dict_18']
cs

  • names를 출력하면 모두 문자열로 되어있다.
1
2
3
4
5
6
7
8
9
10
11
 for i in names:    
        print(i)
>
name_dict_11
name_dict_12
name_dict_13
name_dict_14
name_dict_15
name_dict_16
name_dict_17
name_dict_18
cs

  • 그래서 for문을 돌려서 출력해보면 그냥 문자열만 출력된다. 원하는건 문자열을 돌려서 변수에 접근하는 것이다. 이러한 문제를 해결해 주는 함수가 eval()이다.
1
2
for i in names:
    print(eval(i))
cs

11

  • 이렇게 하면 for문을 돌려 문자열로 변수 접근이 가능하다.
728x90
LIST
Comments