2016-11-26 2 views
0

파이썬 요소의 liststr에서 int으로 변환하고 싶습니다.문자열을 int로 변환하는 목록

내 초기 목록은 다음과 같습니다

l1 = ['723', '124', '1,211', '356'] 

내가 노력 코드 :

l1 = list(map(int, l1)) 

나에게 알려주는 오류가 발생 : 또는

ValueError: invalid literal for int() with base 10: '1,211' 

을, 나는 map 시도 ing with float :

l1 = list(map(float, l1)) 

하지만,,이 또한 오류가 발생했습니다 : 나는지도 기능을 사용하여 코드에서 모두 intfloat을 시도

ValueError: could not convert string to float: '1,211' 

. 누구든지 내가 잘못 가고있는 곳에서 나를 교정 할 수 있습니까?

+1

는'1,211' "1 점 211"또는 "1000 211"로되어 있습니까? –

답변

2

간단한 지능형리스트로 작업을 수행합니다.

>>> l1 = ['723', '124', '1,211', '356'] 
>>> [int(i.replace(',','')) for i in l1] 
[723, 124, 1211, 356] 
4

str 수레하는 s 또는 int 치의 변환으로 실패합니다 ','을 포함하는 값으로 int 또는 float 중 하나를 매핑은 올바르게 번호를 형성 나타내는 요구 사항 (파이썬은 수천 수레 에 대한 구분 기호로 ',' 또는을 허용하지 않습니다이있다

: ','가 천 단위 구분은, @tobias_k가 언급 한 바와 같이) ( replace(',', '')를 사용하는 이해 당신이 map에 공급하고 int 즉시 적용하는 경우는) 튜플로

충돌

r = list(map(int , (i.replace(',', '') for i in l1))) 
r의 위해 원하는 결과를 얻을 수 있습니다 :

[723, 124, 1211, 356] 
+0

은 1211이 아니고 1.211이 아닙니다. 이 경우 어떻게해야합니까? – vikky

+1

이 경우,'i.replace (',', '')' –

+0

@tobias_k 효과가있었습니다. Thnks – vikky

1

이 도움이 될 수 있습니다 :

l1 = ['723', '124', '1,211', '356'] 
l1 = [int(i.replace(',','')) for i in l1] 
for x in l1: 
    print("{:,}".format(x)) 

출력 :

723 
124 
1,211 
356 
관련 문제