파이썬에서 여러 dict로 구성된 목록을 가정하십시오.
a = [{1: u'100'}, {2: u'200'}, {3: u'300'}]
dict 항목의 데이터 유형을 유니 코드에서 float로 변경하고 싶습니다.
a = [{1: 100.0}, {2: 200.0}, {3: 300.0}]
다음은 내 현재 코드입니다.
for i in a:
for j in i.keys():
if type(i[j]) == unicode:
i[j] = float(i[j])
작동하지만이 멍청한 표정이 싫다. 훨씬 더 우아한 표현이있을 것입니다. 도와주세요.
>>> a = [{1: u'100'}, {2: u'200'}, {3: u'300'}]
>>> [{k:float(v) for k,v in d.iteritems()} for d in a]
[{1: 100.0}, {2: 200.0}, {3: 300.0}]
유니 코드 유형 검사를 추가해야하는 경우 가능하지만 중첩 된 목록 / 딕셔너리 이해가 더 이상 읽을 수있는 것은 아닙니다.
>>> a = [{1: u'100'}, {2: u'200'}, {3: u'300', 4: "not unicode"}]
>>> [{k:float(v) if isinstance(v, unicode) else v for k,v in d.iteritems()} for d in a]
[{1: 100.0}, {2: 200.0}, {3: 300.0, 4: 'not unicode'}]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다