【发布时间】:2018-05-24 02:34:24
【问题描述】:
我有一长串想要做点什么的郊区
其中很多都有 RDx(用于农村送货),其中 x 是从 1 到 30 的数字
我想像下面那样摆脱 RDx
for row in WorkingData['PatientSuburb']:
if 'RD10' in str(row):
WorkingData['PatientSuburb'].replace(regex=True,inplace=True,to_replace=r'RD10',value=r'')
我在想如果我可以运行一个循环并以某种方式增加数字,那就太好了。这行不通,但它符合我想做的事情:
for rd in range(1,31,1):
if 'RD',rd in str(row):
WorkingData['PatientSuburb'].replace(regex=True,inplace=True,to_replace=r'RD'rd ,value=r'')
如果我这样做,我会得到一个中间有空格的输出:
for rd in range(1,31,1):
print 'RD',rd
像这样:
RD 1
RD 2
RD 3
RD 4
RD 5
RD 6
RD 7
RD 8
RD 9
RD 10
RD 11
RD 12
而且我还需要弄清楚这件作品的工作原理......
to_replace=r'RD'rd
我看到有人在标记绘图时使用 % 符号,然后它从引号之外引入一个值 - 但我不知道这是否是标签函数的一部分(我确实尝试过,但没有根本不工作) 应该是这样的
to_replace=r'RD%' % rd
对此的任何帮助将非常感谢!
【问题讨论】:
-
这看起来真的很像XY problem。从 RD1 循环到 RD30 以检查每个字符串可以通过正则表达式替换来实现,这将更加高效和优雅。
-
@SamuelDion-Girardeau 这很“有趣”。你是对的 - 我试图简化这个问题。但不是那么多......我对正则表达式不太熟悉 - 你能给我一些关于如何用正则表达式处理这个问题的见解吗?
-
您可以定义一个regular expression,而不是遍历可能的值并手动匹配字符串,它将匹配它们。我将通过代码示例发布答案。
标签: python string python-2.7 loops