python - 从列表中的字符串对中收集关系
问题描述
考虑下面的一组列表,每个列表都包含两个字符串。
给定列表中两个字符串的配对意味着它们代表的值相等。所以 A 项与 B 项和 C 项相同,以此类推。
l1 = [ 'A' , 'B' ]
l2 = [ 'A' , 'C' ]
l3 = [ 'B' , 'C' ]
将这些关系收集到 dict 中的最有效/pythonic 方法是什么,如下所示:
{ "A" : [ "B" , "C" ] }
ps 抱歉标题不好,我不知道如何描述问题!
编辑:
为了使问题更清楚,我试图从数千条记录中过滤掉重复的样本。
我对数据集中的每个样本进行了成对比较,表明它们是否相互重复。
有时,一个样本可能会以不同的标识符以一式三份/四份出现在数据集中。
只保留一份重复的样本很重要。
因此,需要一个 dict 或类似结构,其中包含选定的样本作为键,并将其在数据集中的重复项列表作为值。
解决方案
我会使用集合中的 defaultdict,这样字典就会扩展,并且只接受你放入其中的任何内容。如果这是单向通信,我将使用此代码(假设您列出了列表)
dd = collections.defaultdict(list)
for line in lists:
dd[line[0]].append(line[1])
对于给定的集合,这将制作字典
{"A" : ["B", "C"] }
{"B" : ["C"] }
'''
this should be a good starting point
推荐阅读
- javascript - 为什么 Javascript 中声明的变量在当前范围内是不可配置的?
- python - 简单的 DFT 系数 => 幅度/频率 => 绘图
- c++ - C ++上的char数组输出中的不同颜色字符
- c# - 格式化 C# 字符串以匹配特定结果
- javascript - 谷歌地图标记悬停效果
- javascript - 成功完整提交时弹出消息
- c++ - 在不释放所有动态分配的资源的情况下结束程序是否有风险?
- mysql-workbench - 显示数据库关系结构
- scala - 为 Apache Storm Bolt 编写单元测试时创建 testTuple 时出错
- android - 无法将字符串 Json 解析为 Json 对象