【问题标题】:Slicing a string based on common delimeter in Python基于 Python 中的通用分隔符对字符串进行切片
【发布时间】:2018-06-15 21:22:21
【问题描述】:

我想取以下字符串并根据管道分隔符对其进行切片:

address = '1234 Broadway Ave | Los Angeles | CA | 94530'

我找到了第一块:

street = address[:address.index('|')]
print(street)
1234 Broadway Ave

但我不清楚如何获取城市/州/邮编:

city = 
state = 
zip =

另外,有没有更好的方法来做到这一点?使用正则表达式或类似的东西?以前没用过。。

谢谢!

【问题讨论】:

标签: python string slice


【解决方案1】:

您可以通过将'|'str.split() 分开并使用str.strip() 去除每个项目的前导和尾随空格来获取每个项目:

address = '1234 Broadway Ave | Los Angeles | CA | 94530'

items = [x.strip() for x in address.split('|')]

print(items)

这给出了:

['1234 Broadway Ave', 'Los Angeles', 'CA', '94530']

此外,您还可以使用map() 很好地做到这一点:

items = list(map(str.strip, address.split('|')))

您还可以使用zip() 将这些项目分配给字典,如下所示:

contents = ["street", "city", "state", "zip"]
d = dict(zip(contents, items))
print(d)

这会给你这个结构:

{'street': '1234 Broadway Ave', 'city': 'Los Angeles', 'state': 'CA', 'zip': '94530'}

然后您可以通过简单地调用键来访问此字典中的每个项目:

>>> d['street']
1234 Broadway Ave
>>> d['city']
Los Angeles
>>> d['state']
CA
>>> d['zip']
94530

【讨论】:

    猜你喜欢
    • 2012-12-25
    • 1970-01-01
    • 2021-03-12
    • 2013-04-04
    • 2016-04-08
    • 1970-01-01
    • 2021-03-18
    • 2017-03-24
    • 2012-07-13
    相关资源
    最近更新 更多