在Python中基于通用分隔符切割字符串

时间:2018-01-06 04:12:45

标签: python string slice

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

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

我想出了第一件作品:

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

但我不知道如何获得城市/州/邮编:

city = 
state = 
zip =

此外,还有更好的方法吗?使用RegEx或类似的东西? Haven之前没有用过..

谢谢!

1 个答案:

答案 0 :(得分:7)

您只需使用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