为了账号安全,请及时绑定邮箱和手机立即绑定

从 python 列表中删除邮政编码

从 python 列表中删除邮政编码

www说 2021-08-14 17:27:00
这应该很简单,但无法让它工作。我有一些由地理定位 MapQuest API 返回给我的字符串。我想将州名与这样的字符串隔离开来,这有点困难。想想'Pennsylvania Avenue'(在DC),然后是'Washington',它可以是一个州,也可以是一个街道名称和一个城市。s = "Goldman Sachs Tower, 200, West Street, Battery Park City, Manhattan Community Board 1, New York County, NYC, New York, 10282, United States of America"s = "9th St NW, Logan Circle/Shaw, Washington, District of Columbia, 20001, United States of America"s = "Casper, Natrona County, Wyoming, United States of America"但是我注意到 MapQuest 在邮政编码之前写了州名称,靠近字符串的末尾。要获取州名,这很有效,也就是说,如果有邮政编码:s = s.split(",")s = [x.strip() for x in s]state = s[-3]但是,当没有 zip code 时,如在第三个字符串中,那么我得到县(纳特罗纳县)。我试图通过以下方式消除邮政编码:s = s.split(",")s = [x.strip() for x in s if '\d{5}' not in x ]但是正则表达式'\d{5}'不起作用 - 我想要怀俄明州,而不是纳特罗纳县。
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

使用re:


import re


s = "9th St NW, Logan Circle/Shaw, Washington, District of Columbia, 20001, United States of America"


s = s.split(",")

number = re.compile(r"\d{5}")

s = [x.strip() for x in s if not number.search(x)]

print s

print s[-2]

输出:


['9th St NW', 'Logan Circle/Shaw', 'Washington', 'District of Columbia', 'United States of America']

District of Columbia


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号