gpt4 book ai didi

python - 在字符串 Python 列表中舍入数字的最快方法

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:55 25 4
gpt4 key购买 nike

给定一个地址列表(可以是 numpy 数组):

>input: ['F/O 1751 HOBART PL NW', '11TH ST NW 2301', '801 MT VERNON ST NW']

其中数字并不总是出现在字符串中的同一位置。有没有比首先使用正则表达式提取数字然后以某种方式将其插入以将其四舍五入到最接近的(比方说)100 更快的方法。

>output: ['F/O 1800 HOBART PL NW', '11TH ST NW 2300', '800 MT VERNON ST NW']

如有任何帮助,我们将不胜感激。谢谢,

编辑:

只有由单词边界(空格、句点、逗号)分隔的数字需要转换,这样 r'\b\d+\b' 才能工作。

最佳答案

你可以做一点text munging使用 re.sub():

import re

def replace_number(n):
return str(int(round(int(n.group(0)), -2)))

data = ['F/O 1751 HOBART PL NW', '11TH ST NW 2301', '801 MT VERNON ST NW']

## I'm assuming you only want to munge numbers with 3 or more digits:
for datum in data:
print re.sub(r"(\d{3,})", replace_number, datum)

输出:

F/O 1800 HOBART PL NW
11TH ST NW 2300
800 MT VERNON ST NW

注意 - 如果字符串中有类似 020 的数字,这将给您带来潜在的不良结果:

'020 MT VERNON ST NW'

成为

'0 MT VERNON ST NW'

如果您希望在您的数据中找到它,您需要向 replace_number(n) 函数添加一些检查

关于python - 在字符串 Python 列表中舍入数字的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413870/

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