gpt4 book ai didi

python - 新手正则表达式攻略

转载 作者:行者123 更新时间:2023-11-28 19:46:54 25 4
gpt4 key购买 nike

我有一个很长的文本文件,每行伪代码如下所示:

大房子 --> ['客厅', '厨房', '浴室']

大约有 700 行这样的格式需要转换为 python 字典:

{'big house' : ['living room', 'kitchen', 'bathroom']}

如您所见,对于每一行,我需要在开头和结尾加上括号,将“-->”替换为“:”,并在字典键周围放置引号。任何帮助将不胜感激。

最好的策略是查找并替换“-->”,然后在单独的正则表达式中的开头和结尾添加方括号,然后在另一个正则表达式中处理键吗?

最佳答案

无需正则表达式即可获得所需的输出:

例如:

import ast
s = """big house --> ['living room', 'kitchen', 'bathroom']
big house2 --> ['living room', 'kitchen', 'bathroom']"""
d = {}
for i in s.split("\n"):
val = i.split("-->")
d[val[0].strip()] = ast.literal_eval(val[1].strip())
print(d)

输出:

{'big house2': ['living room', 'kitchen', 'bathroom'], 'big house': ['living room', 'kitchen', 'bathroom']}
  • 在“-->”处拆分您的文本并使用 index 作为键 & index 1 作为值
  • 使用ast.literal_eval 将字符串列表转换为列表对象。

使用正则表达式:

import re
import ast
s = """big house --> ['living room', 'kitchen', 'bathroom']
big house2 --> ['living room', 'kitchen', 'bathroom']"""
d = {}
for i in re.findall("(.*)\s+\-->\s+(.*)", s):
d[i[0].strip()] = ast.literal_eval(i[1].strip())
print(d)
#{'big house2': ['living room', 'kitchen', 'bathroom'], 'big house': ['living room', 'kitchen', 'bathroom']}

关于python - 新手正则表达式攻略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857566/

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