gpt4 book ai didi

python - 使用字符串方法format()从字符串中提取值

转载 作者:行者123 更新时间:2023-11-30 22:52:32 30 4
gpt4 key购买 nike

在 python 中我可以执行以下操作:

who = "tim"
what = "cake"
print "{0} likes {1}".format(who, what)

产生“蒂姆喜欢蛋糕”。

但是,逆运算并不那么简单,因为我需要使用正则表达式。我的意思是,解析已知结构的字符串并提取我知道它包含的部分,并将它们存储到我的变量中。我执行此提取:

import re

expression = "([a-z]*) likes ([a-z]*)"
input_line = "tim likes cake"

who, what = re.search(expression, inputline).groups()

这对于少量参数来说足够整洁,但与我对 format() 的“理想逆”的想法相比,它对我来说有两个主要缺点:

  • 提取的参数始终是字符串,需要将它们转换为带有额外行的 float 。 Format 在内部处理所需的从任何值到字符串的转换。
  • 我需要为输入和输出定义不同的模板,因为正则表达式形式“([a-z]*) likes ([a-z]*)”的输入模板不能重复用于“在格式函数中导出”数据。

所以,我的问题是,是否存在这样的函数,它会自动解析字符串并以与我们将它们打印到字符串相同的方式获取值,遵循几乎相同的语法,例如
"{0} 喜欢 {1}".extract(who,what,input_line="tim 喜欢蛋糕")

我知道我可以创建自定义的“提取”函数,该函数的行为符合预期,但如果已经有可用的函数,我不想创建它。

最佳答案

who = "tim"
what = "cake"
print "{0} likes {1}".format(who, what)

这是有效的,因为您确切地知道字符串中的人物和内容。如果是这种情况,则不需要正则表达式。字符串是字符列表:)

def extract_who_what_from_string(string):
words = string.split(" ")
who = words[0]
what = words[-1]
return who, what

事实上,任何比这更复杂的事情都是自然语言处理,并且远远超出了我的范围。

关于python - 使用字符串方法format()从字符串中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38528461/

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