gpt4 book ai didi

python - 在字符第一次出现和最后一次出现时分割?

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:40 24 4
gpt4 key购买 nike

我有一个字符串列表(金额、地址、付款):

"44.53 54 orchard rd Cash"
"32.34 600 sprout brook lane Card"

我只是想从每个字符串中获取地址。在我看来,解决这个问题的最佳方法是在第一次和最后一次出现空格时进行拆分。有什么办法可以做到这一点吗?

最佳答案

Python split 函数定义如下: str.split(sep=None, maxsplit=-1) .

同样,还有str.rsplit(sep=None, maxsplit=-1) .

这意味着您可以仅拆分开头和结尾:

>>> s = "44.53 54 orchard rd Cash"
>>> s.split(maxsplit=1)
['44.53', '54 orchard rd Cash']
>>> s.rsplit(maxsplit=1)
['44.53 54 orchard rd', 'Cash']

然后,为了简单地将字符串分成 3 个,您可以编写一个简单的函数:

>>> def purchase_parts(purchase):
... lsplit = purchase.split(maxsplit=1)
... rsplit = lsplit[1].rsplit(maxsplit=1)
... return (lsplit[0], rsplit[0], rsplit[1])
...
>>> purchase_parts("44.53 54 orchard rd Cash")
('44.53', '54 orchard rd', 'Cash')
>>> purchase_parts("32.34 600 sprout brook lane Card")
('32.34', '600 sprout brook lane', 'Card')

不过,我建议切换到分隔值列表,因为这样您就可以使用该分隔符进行拆分,而且还可以直接支持导入/导出 csv 格式(逗号分隔值)文件。

手动解决方案:

>>> [p.strip() for p in "32.34, 600 sprout brook lane, Card".split(',')]
['32.34', '600 sprout brook lane', 'Card']

关于python - 在字符第一次出现和最后一次出现时分割?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60156778/

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