gpt4 book ai didi

python - 在字符串中的关键字之前删除 '\n'

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:38 24 4
gpt4 key购买 nike

我有以下字符串:

elements = "one: Fire \n two: Water \n three: Earth \n four: \n Sky \n five: \n Light \n"

我想动态分割线以得到如下字典形状:

{one: Fire, 
two: Water,
three: Earth,
four: Sky,
five: Light}

我可以使用 re.findall() 对前三个元素执行此操作,因为信息包含在新行拆分之前。但是对于“四:”和“五:”元素前有一个“\n”,我无法提取该元素。

有没有办法动态地做到这一点?

我能想到的唯一解决方案是过滤元素单词列表前的“\n”。

最佳答案

您可能不需要复杂的正则表达式来执行此操作。你可以试试这个

str = 'one: Fire \n two: Water \n three: Earth \n four: \n Sky \n five: \n Light \n'
str = str.replace(' ', '').replace(':\n', ':')
parts = filter(lambda x: ':' in x, str.split('\n'))
elements = dict((elem.split(':')) for elem in parts)
print(elements)

但如果你真的想花哨,这也行

import re
str = 'one: Fire \n two: Water \n three: Earth \n four: \n Sky \n five: \n Light \n'
parts = map(lambda x: re.sub('\s', '', x), re.findall('\w+:\s*\w+', str))
elements = dict((elem.split(':')) for elem in parts)
print(elements)

关于python - 在字符串中的关键字之前删除 '\n',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290508/

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