python-3.x - 从列表和字典中制作字典
问题描述
我正在尝试创建一个可用于查询和选择的代码字典。假设我有一本州名字典和相应的 FIPS 代码:
statedict ={'Alabama': '01', 'Alaska':'02', 'Arizona': '04',... 'Wyoming': '56'}
然后我有一个从地图服务器请求中提取的 FIPS 代码列表:
fipslist = ['02121', '01034', '56139', '04187', '02003', '04023', '02118']
我想将字典中的键(基于该键值的前 2 个字符)与列表项(也基于该键值的前 2 个字符。例如,所有代码开始01 = '阿拉巴马',等等......)。我的最终目标是这样的:
fipsdict ={'Alabama': ['01034'], 'Alaska':['02121', '02003','02118'], 'Arizona': ['04187', '04023'],... 'Wyoming': ['56139']}
我会尝试将其设置为与此类似,但它不能正常工作。有什么建议么?
fipsdict = {}
tempList = []
for items in fipslist:
for k, v in statedict:
if item[:2] == v in statedict:
fipsdict[k] = statedict[v]
fipsdict[v] = tempList.extend(item)
解决方案
您必须创建一个新列表来保存每个州的匹配 fips 代码。以下是适用于您的案例的代码。
for state,two_digit_fips in statedict.items():
matching_fips = []
for fips in fipslist:
if fips[:2] == two_digit_fips:
matching_fips.append(fips)
state_to_matching_fips_map[state] = matching_fips
>>> print(state_to_matching_fips_map)
{'Alabama': ['01034'], 'Arizona': ['04187', '04023'], 'Alaska': ['02121', '02003', '02118'], 'Wyoming': ['56139']}
推荐阅读
- java - 我想删除 listView 的数据并出现这个异常 java.lang.NullPointerException
- c++ - 使用此指针与使用两个参数的内联函数的性能影响
- javascript - 如何将对象 A 转换为具有对象 A 属性的对象数组并为其分配值和标签
- javascript - 为什么我的 HTML 标签中的变量没有显示出来?
- sql - 全局临时表 (GTT) 和集合之间的区别
- html - 如何模拟 SHIFT+10 和 ALT+F4 到条形码
- node.js - 生产中的随机错误 404 runtime.js 角度
- c# - iText7 叠加覆盖两个PDF作为一个新问题
- java - 是否可以部分自动格式化代码?
- javascript - 将 jquery 转换为老式的 js