2017-02-02 1 views
3

그래서 고유 한 유형을 가진 문자열 목록이 있습니다.고유 한 유형으로 혼합 된 고유 한 유형의 문자열리스트

mixedbag = ['True', '2.7', '3', 'Ninety'] 

나는 다음과 같이이 변환하고자 : 내가 생각 무엇

[True, 2.7, 3, 'Ninety'] 

이 목록의 각 항목을 평가하는 체인을 제외하고/큰 시도를 만드는 것입니다,하지만하지 않습니다 이 문제를 다루는 비범 한 방법 인 것 같아.

답변

5

try-except 블록에서 ast.literal_eval을 사용할 수 있습니다.

from ast import literal_eval 
def unmix(ele): 
    try: 
     ele = literal_eval(ele) 
    except ValueError: 
     pass 
    return ele 

데모

>>> list(map(unmix, mixedbag)) 
[True, 2.7, 3, 'Ninety'] 
0

ast.literal_eval 기능 사용 용액 :

import ast 
mixedbag = ['True', '2.7', '3', 'Ninety'] 

evaled = [] 
for i in mixedbag: 
    try: 
     evaled.append(ast.literal_eval(i)) 
    except ValueError: 
     evaled.append(i) 

print(evaled) 

출력 :

을 0
관련 문제