gpt4 book ai didi

python - 改造 |字典中的分隔值

转载 作者:太空宇宙 更新时间:2023-11-04 03:22:26 28 4
gpt4 key购买 nike

我需要将下面报告的数据字符串转换为以时间戳(第一个数字元素)为键的字典。我该怎么做?

element=20151201091000|22844.4|22786.2|22801.6|22839.7|1091
element=20151201091500|22839.6|22798.3|22837.9|22801.7|477
element=20151201092000|22800.4|22770.3|22799.1|22772.7|420

最佳答案

您无需正则表达式即可轻松完成此操作:

s = """element=20151201091000|22844.4|22786.2|22801.6|22839.7|1091
element=20151201091500|22839.6|22798.3|22837.9|22801.7|477
element=20151201092000|22800.4|22770.3|22799.1|22772.7|420"""



def pairs(s):
for line in s.splitlines():
spl = line.split("=")[1].split("|")
yield spl[0], spl[1:]

print(dict(pairs(s)))

或者使用 python3 你可以解压:

def pairs(s):
for line in s.splitlines():
k,*vals = line.split("=")[1].split("|")
yield k, vals


print(dict(pairs(s)))

两者都会给你:

{'20151201091000': ['22844.4', '22786.2', '22801.6', '22839.7', '1091'], '20151201091500': ['22839.6', '22798.3', '22837.9', '22801.7', '477'], '20151201092000': ['22800.4', '22770.3', '22799.1', '22772.7', '420']}

如果你想投:

def pairs(s):
for line in s.splitlines():
k,*vals = map(float, line.split("=")[1].split("|"))
yield k, vals


print(dict(pairs(s)))

输出:

{20151201091000.0: [22844.4, 22786.2, 22801.6, 22839.7, 1091.0], 20151201092000.0: [22800.4, 22770.3, 22799.1, 22772.7, 420.0], 20151201091500.0: [22839.6, 22798.3, 22837.9, 22801.7, 477.0]}

关于python - 改造 |字典中的分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34253156/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com