将字符串转换为混合 float、int 和 str 的列表,知道 Python 中的格式
Convert string to list of mixed float, int and str knowing the format in Python
考虑一个像 '1.5 1e+05 test 4'
这样的简单字符串。 Python 2.7 中用于生成该字符串的格式是 '%f %e %s %i'
。我想从知道字符串格式化程序的输入字符串中检索 [1.5,100000,'test',4]
形式的列表。我该怎么做(Python 2.7 或 Python 3)?
非常感谢,
Ch.
使用parse
模块。这个模块可以做到'reverse formatting'。示例:
from parse import parse
format_str = '{:1f} {:.2e} {} {:d}'
data = [1.5, 100000, 'test', 4]
data_str = format_str.format(*data)
print(data_str) # Output: 1.500000 1.00e+05 test 4
parsed = parse(format_str, data_str)
print(parsed) # Output: <Result (1.5, 100000.0, 'test', 4) {}>
a, b, c, d = parsed # Whatever
考虑一个像 '1.5 1e+05 test 4'
这样的简单字符串。 Python 2.7 中用于生成该字符串的格式是 '%f %e %s %i'
。我想从知道字符串格式化程序的输入字符串中检索 [1.5,100000,'test',4]
形式的列表。我该怎么做(Python 2.7 或 Python 3)?
非常感谢,
Ch.
使用parse
模块。这个模块可以做到'reverse formatting'。示例:
from parse import parse
format_str = '{:1f} {:.2e} {} {:d}'
data = [1.5, 100000, 'test', 4]
data_str = format_str.format(*data)
print(data_str) # Output: 1.500000 1.00e+05 test 4
parsed = parse(format_str, data_str)
print(parsed) # Output: <Result (1.5, 100000.0, 'test', 4) {}>
a, b, c, d = parsed # Whatever