考虑一下Python中既包含字母字符串又包含数字字符串的列表
a = ['Total', '1', '4', '5', '2']
如何将其转换为混合值列表
b = ['Total', 1.0, 4.0, 5.0, 2.0]
请注意,通常我们可能不知道字母字符串在列表中的位置,即我们可能有
a = ['Total', '1', '4', 'Next', '2']
您可以使用生成器函数和异常处理:
>>> 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]