2024-06-17 16:27:38 发布
网友
我有一个字符串列表(金额、地址、付款):
"44.53 54 orchard rd Cash" "32.34 600 sprout brook lane Card"
我只是想从每个字符串中获取地址。在我看来,最好的解决办法是在空间的第一次和最后一次出现时分开。有没有办法做到这一点
您可能会执行以下操作:
line = "44.53 54 orchard rd Cash" line_parts = line.split(" ") address = " ".join(line_parts[1:-1])
它有点不整洁,而且对于行格式的更改来说肯定很脆弱,但是可以完成这项工作
您可以使用您的方法,在第一个和最后一个空格处拆分,但需要将其余空格(在中间)重新合并:
def get_address(s): s = s.split() return ' '.join(s[1:-1]) # s[1:-1] will remove the first (amount) and the last (payment) values # ' '.join will then put back the spaces that were removed from the address by s.split
输入:
print(get_address("44.53 54 orchard rd Cash")) print(get_address("32.34 600 sprout brook lane Cash"))
输出:
54 orchard rd 600 sprout brook lane
Python split函数的定义如下:^{}
split
同样,还有^{}
这意味着您可以只拆分开头和结尾:
>>> 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}
split
函数的定义如下:^{同样,还有^{}
这意味着您可以只拆分开头和结尾:
然后,为了简单地将字符串拆分为3,您可以编写一个简单的函数:
尽管如此,我还是建议切换到分隔值列表,因为这样您就可以使用该分隔符进行拆分,而且还可以直接支持导入/导出csv格式(逗号分隔值)文件
手动解决方案:
相关问题 更多 >
编程相关推荐