gpt4 book ai didi

python - 拆分一个字符串,它在数字和字母字符之间切换

转载 作者:太空狗 更新时间:2023-10-29 17:09:21 25 4
gpt4 key购买 nike

我正在解析一些标准格式类似于 10 pizzas 的数据。有时,数据输入正确,我们可能会得到 5pizzas 而不是 5 pizzas。在这种情况下,我想解析出比萨饼的数量。

这样做的天真方法是逐个字符地检查,构建一个字符串直到我们到达一个非数字,然后将该字符串转换为一个整数。

num_pizzas = ""
for character in data_input:
if character.isdigit():
num_pizzas += character
else:
break
num_pizzas = int(num_pizzas)

虽然这很笨重。有没有更简单的方法来拆分从数字转换为字母字符的字符串?

最佳答案

您要求一种根据数字拆分字符串的方法,但在您的示例中,您真正想要的只是第一个数字,这很容易用 itertools.takewhile() 完成:

>>> int("".join(itertools.takewhile(str.isdigit, "10pizzas")))
10

这很有意义——我们正在做的是在字符串是数字时从字符串中取出字符。这具有在我们到达第一个非数字字符时立即停止处理的优点。

如果你也需要后面的数据,那么你要找的是itertools.groupby()与简单的 list comprehension 混合在一起:

>>> ["".join(x) for _, x in itertools.groupby("dfsd98sd8f68as7df56", key=str.isdigit)]
['dfsd', '98', 'sd', '8', 'f', '68', 'as', '7', 'df', '56']

如果你想创造一个巨大的数字:

>>> int("".join("".join(x) for is_number, x in itertools.groupby("dfsd98sd8f68as7df56", key=str.isdigit) if is_number is True))
98868756

关于python - 拆分一个字符串,它在数字和字母字符之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673781/

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