当前位置: 首页 > 面试题库 >

在Python中将函数传递给re.sub

淳于知
2023-03-14
问题内容

我的字符串中某些地方包含数字,并且我正尝试用其单词符号替换此数字(即3->
3)。我有一个功能可以做到这一点。现在的问题是找到字符串中的数字,同时保持字符串的其余部分不变。为此,我选择使用该re.sub函数,该函数可以接受“
callable”。但是,传递给它的对象是内部对象_sre.SRE_Match,我不确定如何处理它。我的函数接受数字或其字符串表示形式。

我应该如何编写一些辅助函数,该函数可用于将re.sub调用与执行所需处理的函数桥接起来?另外,是否有更好的方法来做我想做的事?


问题答案:

您应该致电group()以获取匹配的字符串:

import re

number_mapping = {'1': 'one',
                  '2': 'two',
                  '3': 'three'}
s = "1 testing 2 3"

print re.sub(r'\d', lambda x: number_mapping[x.group()], s)

印刷品:

one testing two three


 类似资料:
  • 问题内容: 我需要某种方法来使用pool.map()中的一个函数,该函数接受多个参数。根据我的理解,pool.map()的目标函数只能有一个可迭代的参数,但是有没有办法我也可以传入其他参数呢?在这种情况下,我需要传递一些配置变量,例如Lock()并将信息记录到目标函数中。 我试图做一些研究,我认为我也许可以使用部分函数来使其工作?但是,我不完全了解这些工作原理。任何帮助将不胜感激!这是我要执行的简

  • 问题内容: 我有一个C函数声明如下: 如今,我的cython包装器代码使用了numpy数组中的缓冲区语法: 我想使用新的memoryview语法,我的问题是,使用memoryview时如何将指针传递给数据? 我试过了: 当我尝试编译模块时,出现了“无法将类型’long [:]’分配给’long *’”的错误。有没有什么方法可以在调用C函数之前将指针传递给numpy数组而不将其强制转换为numpy数

  • 问题内容: 这是我的代码: 当我评估f(0)时,将出现错误“ x在分配之前被引用”。 但是,当我使用“ print x”代替“ x = x + 1”时,它将起作用。 似乎在g的范围内,我只能将x用作“使用事件”,而不能用作“绑定事件”。我想问题是f仅将x的值传递给g。 我是否正确理解?如果不是,有人可以解释为什么在引用之前未定义“ x = x + 1”的左侧吗? 谢谢 问题答案: 您正确理解了它。

  • 要将数组参数传递给函数,需指定不带方括号的数组名。例如,如果数组hourlyTemperatures声明如下: int hourlyTemperatures[24]; 则下列函数调用语句: modifyArray(hourlyTemperatutes,24); 将数组 hourlyTemperatures 及其长度传递给函数 modifyArray。将数组传递给函数时,通常也将其长度传递给函数,使

  • 问题内容: 以下作品: 垃圾邮件 但是,如果拿来争论呢? TypeError:spam()恰好接受1个参数(给定0) 鉴于我无权访问函数本身,而只能访问代码对象,执行该函数时如何将参数传递给该代码对象?评估可能吗? 编辑:由于大多数读者倾向于不相信这样做的用处,请参见以下用例: 我想将小的Python函数保存到文件中,以便可以从其他计算机上调用它们。(在这里不必说这个用例会严重限制可能的功能。)腌

  • 我很好奇在Spark中把一个RDD传递给一个函数到底做了什么。 假设我们如上定义一个函数。当我们调用函数并传递一个现有的RDD[String]对象作为输入参数时,这个my_function是否将这个RDD作为函数参数进行“复制”?换句话说,是按引用调用还是按值调用?