문제

목록이 있습니다.

['batting average', '306', 'ERA', '1710']

문자열을 만지지 않고 의도 한 숫자를 어떻게 변환 할 수 있습니까?

도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

changed_list = [int(f) if f.isdigit() else f for f in original_list]

다른 팁

데이터는 숫자가 어느 위치에 있는지 알고있는 것처럼 보입니다. 이 경우 숫자처럼 보이는 것을 변환하는 대신 이러한 위치에서 데이터를 명시 적으로 변환하는 것이 좋습니다.

ls = ['batting average', '306', 'ERA', '1710']
ls[1] = int(ls[1])
ls[3] = int(ls[3])

이 시도:

def convert( someList ):
    for item in someList:
        try:
            yield int(item)
        except ValueError:
            yield item

newList= list( convert( oldList ) )
a= ['batting average', '306', 'ERA', '1710.5']

[f if sum([c.isalpha() for c in f]) else float(f) for f in a ]

목록에 float, string 및 int가 포함 된 경우 (주석에서 @d.putto가 지적한대로)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top