首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将部分案例与Python字典匹配

将部分案例与Python字典匹配
EN

Stack Overflow用户
提问于 2015-12-17 07:13:47
回答 1查看 120关注 0票数 3

乍一看,我认为这是一个简单的问题,但我找不到一个正确的答案。

我有一本州名和缩写的字典,像这样;

代码语言:javascript
复制
{(' ak', ',ak', ', ak', 'juneau', ',alaska', ', alaska'): 'alaska',
 (' al', ',al', ', al', 'montgomery', ',alabama', ', alabama'): 'alabama',
 (' ar', ',ar', ', ar', 'little rock', ',arkansas', ', arkansas'): 'arkansas',
 (' az', ',az', ', az', 'phoenix', ',arizona', ', arizona'): 'arizona',

我试图绘制这本字典的各种情况,自我报告的Twitter位置,我有在熊猫的数据,以寻找部分匹配。例如,如果一个案例读为“anchorage,ak”,它就会将值更改为阿拉斯加。我可以看到,如果这是一个列表,这是相当简单的,但必须有另一种方法来做到这一点,而不循环。任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-17 08:50:29

我认为timgeb在上面有正确的想法。我要补充两件事:

1)您还可以在处理之前从给定的大小写中删除所有空白--因此,不需要将' ak'',ak'', ak' all作为键包括在内--一个简单的'ak'键就足够了。

2)我不会重复字典中的状态值,而是从整数到状态(即{0: 'alaska, 1: 'alabama' ...} )创建一个额外的散列,并将相应的整数键存储在原始字典中。

因此,生成的字典应该如下所示:

代码语言:javascript
复制
A = {'ak': 0, 'juneau': 0, 'alaska': 0, 'al': 1, 'montgomery': 1, 'alabama': 1, ...}

要从整数值中访问状态名称,您应该为所有50个状态创建另一个字典,如下所示:

代码语言:javascript
复制
B = {0: 'alaska', 1: 'alabama',  ...}

所以鉴于一个案子..。

代码语言:javascript
复制
case = 'anchorage,ak'
case_list = case.replace(' ', '').split(',')  # remove all whitespace and split case by comma
for elem in case_list:
    if elem in A:
        # insert code to replace case with B[A[elem]]
        break
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34328702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档