- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
背景:我从美国人口普查的县邻接文件开始。不幸的是,该文件的格式不一致,因此我的初始脚本将该 tab
分隔文件提取到具有县 i
键(由其 Fips 代码表示)和值的字典中与县 i
相邻的所有县的列表(再次使用 Fips 代码)会产生错误。
问题:我当前的字典违反了“互惠”。如果一个县与另一个县接壤,则第二个县也必须与第一个县接壤。在我的字典中,对于县i
,经常有一个县j
位于县i
的相邻县的值中,但是县i
不包含在重点县j
的值中。
所需解决方案:包含每个县(关键或第 0 个条目)及其所有相邻县的条目的字典或列表列表。
TASK:遍历字典中的每个项目,访问每个项目的值列表中具有键的所有项目,并检查互惠关系是否成立(如果不成立,则添加该键)
最小工作示例(无意义值):
Adj_counties_pre = { 12000 : [12001, 12003],
12001 : [12004],
12003 : [12004, 12001],
12004 : [12003, 12000]}
...
Adj_counties_post = { 12000 : [12001, 12003, 12004],
12001 : [12004, 12003, 12000],
12003 : [12004, 12001, 12000],
12004 : [12003, 12000, 12001]}
我无法弄清楚如何遍历字典来解决这个问题。
谢谢!
最佳答案
您可以使用以下解决方案:
from collections import defaultdict
result = defaultdict(set)
for k,vs in adj_counties_pre.items():
for v in vs:
result[k].add(v)
result[v].add(k)
adj_counties_post = {k:list(v) for k,v in result.items()}
代码的工作原理如下,首先我们构造一个临时的defaultdict(set)
。 defaultdict
是一个字典,如果找不到某个键,它会通过调用工厂(此处为set
)来构造值。
接下来我们迭代所有键值对(k,vs)
。对于每个值 vs
及其元素 v
。对于每个键元素对,我们将元素 v
添加到与键 k
关联的集合中,并将键 k
添加到关联的集合中与元素v
。
接下来我们要么完成(defaultdict
是一本字典,这个字典将县代码映射到一组县代码上),或者我们可以决定将其转换为具有字典理解功能的普通字典。然后生成:
>>> adj_counties_post
{12000: [12001, 12003, 12004], 12001: [12000, 12003, 12004], 12003: [12000, 12001, 12004], 12004: [12000, 12001, 12003]}
另请注意,变量通常以小写字母开头。
关于python - 确保县边界字典中的交换性/互惠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099471/
我有国家、地区、县、城镇数据,目前我正在决定 2 种模式设计(如果有更好的,请告诉我)。 我首先想到的 国家 身份证 姓名 地区 身份证 国家/地区 姓名 县 身份证 地区编号 姓名 城镇 身份证 县
我有两个数据集 df_state 和 df_city。 df_state 有一个数值的总和(net_value_x)。 df_city 在城市级别对数值 (value_x) 进行了分割 这只是德克萨斯
我有一个美国邮政编码及其对应的州、市和县的数据库。它以平面文件的形式提供,我正在尝试规范化数据并准确找出哪些实体依赖于哪些实体。 我遇到的一个问题是,有些城市似乎存在于多个县。我的印象是,在美国,存在
他们使用什么流程或 API 在他们的网站上提供此功能?如果它太复杂而无法解释,请您朝着正确的方向努力,以便也能够提供此功能。谢谢。 最佳答案 研究地理编码、地理标记和 GIS http://en.wi
R新手在这里。 如果我第一次使用 map('state') , 那么我如何使用 map('county', ylim=..., xlim=...)但像这样抵消它: 现在,我正在使用 imagemagi
以下查询适用于一种分类法 SELECT * FROM bb_posts AS p LEFT JOIN bb_term_relationships AS r ON (p.ID = r.object_id
利用 Mike Bostocks 美国各县区 block :https://bl.ocks.org/mbostock/4122298 。 目标是创建一个鼠标移动函数,在事件期间鼠标移动将突出显示所有选
在我的 MVC 应用程序中,我想显示用户访问网站的国家/地区、地区和城市。我怎样才能获取它们? 最佳答案 有几种方法。一种是要求用户与远程服务器共享他的位置。 https://developer.mo
我是一名优秀的程序员,十分优秀!