一尘不染

将Python的字符串列表转换为浮点数,其中列表还包含单词

python

考虑一下Python中既包含字母字符串又包含数字字符串的列表

a = ['Total', '1', '4', '5', '2']

如何将其转换为混合值列表

b = ['Total', 1.0, 4.0, 5.0, 2.0]

请注意,通常我们可能不知道字母字符串在列表中的位置,即我们可能有

a = ['Total', '1', '4', 'Next', '2']

阅读 166

收藏
2021-01-20

共1个答案

一尘不染

您可以使用生成器函数和异常处理:

>>> def func(seq):
        for x in seq:
            try:
                yield float(x)
            except ValueError:
                yield x
...             
>>> a = ['Total', '1', '4', '5', '2']
>>> list(func(a))
['Total', 1.0, 4.0, 5.0, 2.0]
2021-01-20