更新时间:2022-03-14 23:43:58
我会做
matches = [ s for s in states if s in postal_addr ]
然后,如果要从邮政地址获取字符串:
Then, if you want to get the string from the postal address:
import re
if matches:
extracted = re.findall( matches[0], postal_addr)[0]
..但这不适用于城市名称包含不同州的城市/州组合,例如postal_adr = '1 Arrowhead Dr, Kansas City, Missouri 64129'
和states = ["New York", "California", "Nebraska", "Idaho", "Missouri", "Kansas"]
等.在这种情况下
..but this won't work for city/state combos where the city name contains a different state, for example if postal_adr = '1 Arrowhead Dr, Kansas City, Missouri 64129'
and states = ["New York", "California", "Nebraska", "Idaho", "Missouri", "Kansas"]
etc. In this case
import re
if matches:
extracted = [(re.search(m, postal_addr).start() , m) for m in matches ]
extracted = sorted( extracted )[-1][1]