12

私は言うリストを持っています:

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

文字列に触れずに目的の数値を変換するにはどうすればよいですか?

お手伝いありがとう。

4

4 に答える 4

41
changed_list = [int(f) if f.isdigit() else f for f in original_list]
于 2009-05-04T06:11:33.267 に答える
5

データは、数字がどの位置にあるかがわかるように見えます。この場合、数字のように見えるものを単に変換するのではなく、これらの位置でデータを明示的に変換する方がおそらく良いでしょう。

ls = ['batting average', '306', 'ERA', '1710']
ls[1] = int(ls[1])
ls[3] = int(ls[3])
于 2009-05-04T06:18:20.660 に答える
5

これを試して:

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

newList= list( convert( oldList ) )
于 2009-05-04T10:40:37.503 に答える