For和While循环提取字符串的一部分

2024-04-24 22:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用ArcGIS中的字段计算器从字符串中提取数字以创建新字段时遇到问题。提取的值必须保持为字符串。我所面临的问题是,在我希望提取的数字之前和之后的字符数没有一致性。字符串中唯一的一致性是所需数字后面的逗号。你知道吗

到目前为止,我的代码如下:

def get_num_from_string(string):  
    num = '' 
    for i in string:  
        if i in '1234567890':  
            num+=i 
    return num

这段代码没有成功地完成我的目标我需要的代码,逐步通过字符串中的每个字符,只返回数字,直到达到逗号。例如,如果原始字符串是“River Lot 489,11756 MB CODE”,我希望输出字符串为“489”。你知道吗


Tags: 字符串代码infromforgetstringdef
1条回答
网友
1楼 · 发布于 2024-04-24 22:23:06

假设你有绳子

>>> test = "12hel34l0"

要获得字符串中的所有数字,只需

>>> print([d for d in test if d.isdigit()])
['1', '2', '3', '4', '0']

如果希望它再次成为字符串而不是列表,请使用join

>>> print(''.join([d for d in test if d.isdigit()]))
12340

编辑:

"River Lot 489, 127756 MB CODE" I want my output to simply be "489"

为了匹配这一点,我只需将下面的方法更改为test.split(",")[0]。您必须提供更多信息,说明您的数据是什么样子的,以及您是否希望每次都获得第一个逗号前的数字。你知道吗

在您的方法中实现。你知道吗

def get_num_from_string(string):
    return ''.join([d for d in test.split(",")[0] if d.isdigit()])

测试提供的示例

>>> test = "River Lot 489, 127756 MB CODE"
>>> print(get_num_from_string(test))
489

相关问题 更多 >