首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从python字典创建边缘列表

从python字典创建边缘列表
EN

Stack Overflow用户
提问于 2011-12-26 21:57:36
回答 1查看 246关注 0票数 1

我有一本字典,结构如下:

代码语言:javascript
运行
AI代码解释
复制
1:{'Amendment': '1', 
   'status': 'Stadf\xc3\xa6stet', 
   'Name': 'Bodil Kornbek', 
   'title': 'L 1 Forslag til till\xc3\xa6gsbevillingslov for 2004.', 
   'fremsat': '2005-03-04', 
   'Vote.Numeric': '2', 
   'PSession': '1', 
   'vedtaget': '2005-04-12', 
   'Lsession': '3', 
   'Voteid': '38', 
   'Month': '4', 
   'Year': '2005', 
   'Vote': 'Frav\xc3\xa6rende', 
   'Party': 'KD', 
   'Law': 'L 1', 
   'ministerie': 'Finansministeriet'}

关键字的范围从1到大约500000,每个嵌套的字典包含一次投票的丹麦议会成员的信息。此外,还有标识该成员投票的唯一投票的信息。我想让每个成员提取该成员活跃的所有投票,并迭代地将该成员的投票行为与同一投票子集上活跃的所有其他成员进行比较。

理想情况下,对于每个成员,我会将该成员与其他成员在他们活跃的选票上进行比较,并计算他们投票相同的选票占他们所有共同选票的比例。如果该比例大于.65,则会将该对添加到列表中。

因此,最终结果应该是一个列表,格式如下:

代码语言:javascript
运行
AI代码解释
复制
[member1, member2
 member1, member4
 member1, member7
 member2, member5
 etc..
] 

我可以告诉我如何在python中做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-26 22:22:09

首先,让我们转换数据(我将在这里做一些假设),以便字典的关键字是国会议员(由Name标识),每个成员的数据是他们如何投票(Vote.Numeric)每个问题(Voteid)的映射,因此Voteids是该子字典中的关键字。我们可以丢弃不相关的其余信息。

非花哨的程序方式:

代码语言:javascript
运行
AI代码解释
复制
member_to_votes = defaultdict(dict)
for item in vote_data:
    member_to_votes[item['Name']][item['Voteid']] = item['Vote.Numeric']

现在让我们定义两个投票记录之间的相似性:

代码语言:javascript
运行
AI代码解释
复制
def votes_agree(member_a, member_b, threshold):
    # Find the union of issues they voted on...
    issues = set(member_a.keys()).union(member_b.keys())
    # See how many of these they voted the same way on (we use a placeholder
    # if one member did not vote on the issue, so that they automatically
    # disagree) and compare the fraction of agreeing votes to the threshold.
    # There is a little hack in here: `True` is 1 in a numeric context, and
    # `False` is zero, so we can add up the boolean results directly.
    return sum(
        member_a.get(issue, None) == member_b.get(issue, None)
        for issue in issues
    ) / float(len(issues)) >= threshold

现在,我们可以创建所有成员对,并查看哪些成员达成一致:

代码语言:javascript
运行
AI代码解释
复制
def agreeing_members(member_to_votes, threshold):
    return [
        [a, b] for a, b in itertools.combinations(member_to_votes.keys(), 2)
        if votes_agree(member_to_votes[a], member_to_votes[b], threshold)
    ]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8639378

复制
相关文章
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
9230
Python - 从字典列表中删除字典
python列表、元组、字典
列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。列表常用方括号表示,即:[],元素用逗号隔开。
py3study
2020/01/15
1.3K0
Python列表、元组、字典操作
#!/usr/bin/python # -*- coding: UTF-8 -*- list1 = [1,2,'a', 'b'] seq = (1,4,5) print list1[2] #获取第三个元素(下标是从0开始) print list1[-3] #获取倒数第三个元素 print list1[2:] #获取第三个元素到最后一个 print len(list1) #获取列表元素个数 print max(list1) #获取最大的元素 print min(list1) #
苦咖啡
2018/04/28
1.8K0
python之列表、元组、字典
3 深拷贝和浅拷贝 1 浅拷贝: 当列表中存在有个列表时,其修改这个列表中列表的某一个元素时,其他被拷贝的列表中的对应元素也将被拷贝,其在拷贝这个列表中的列表时,拷贝的是这个内嵌列表的内存位置。
py3study
2020/01/14
2.9K0
python 字典、列表、json转换
#!/usr/bin/python3   import json      #python字典类型转换为json对象   data = {       'id' : 1,       'name' : 'test1',       'age' : '1'   }   data2 = [{       'id' : 1,       'name' : 'test1',       'age' : '1'   },{       'id' : 2,       'name' : 'test2',       '
一朵灼灼华
2022/08/05
1.5K0
Python 列表/元祖/字典/集合
版权声明:Copyright © https://blog.csdn.net/zzw19951261/article/details/79950270
zhengzongwei
2019/07/31
1.2K0
python中列表排序,字典排序,列表中的字典排序
key= lambda dict1:dict1[0] #dict1[0]表示按键,dict1[1]表示按值。
用户8346838
2021/03/10
9.7K0
Python 列表&元组&字典&集合
列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片、合并、删除等操作 可通过索引来向指定位置插入元素 可通过pop()方法删除末尾元素,pop(索引位置)来删除指定位置元素 替换元素可直接通过赋值给对应的的索引位置 1 classMates = ['zhangsan','lisi','wangwu'] 2 print(classMates[0]) #通过索引来获取元素 3 print(classMates[-1]
py3study
2020/01/19
1.3K0
python列表,元祖,字典详解
          pop 按照索引删除   列表.pop(索引),  会返回删除内容
py3study
2020/01/10
1.6K0
python列表,元祖,字典详解
python_列表_元组_字典
insert(index, object) 在指定位置index前插入元素object
以某
2023/03/07
2.3K0
python_列表_元组_字典
Python编程 字典创建
Python 的字典数据类型是基于 hash 散列算法实现的,采用 键值对 (key:value) 的形
网络豆
2022/11/28
7110
Python编程 字典创建
python(3)字典及列表
元组tuple # 定义列表 li = [1, 1.0, "westos", (1,2,3,4), [1,2,3,4]] # 定义元组
py3study
2020/01/07
9110
python 列表 字典转json
这一个JSON字符串可以在Android Studio中利用插件GsonFormat转换得到相应对象。
py3study
2020/01/06
2.2K0
python-元组,字典,列表
由于会处理一些json数据,内部字典,列表,元租傻傻分不清,所以这里总结一下他们的特点,便于提取数据 想要知道跟多看官方文档,很详细 https://www.runoob.com/python/python-lists.html 我是看了官方文档后总结后我自己的
全栈程序员站长
2021/05/19
1.2K0
python 列表内字典去重
set可以去重list里的元素为int、float、str、tuple如下,但是不能去重list、set、dict如下:
葫芦
2019/05/14
4.7K0
python-字典与列表学习
#字典练习 def print_dict(): contect_file = 'contect_list.txt' f = file(contect_file) #读取 contect_dic = {} for line in f.readlines(): name = line.split()[1] contect_dic[name] = line #是修改也是添加 #print contect_dic #调试输出 ''
py3study
2020/01/14
5730
python_列表——元组——字典——集合
列表——元组——字典——集合: 列表: # 一:基本使用 # 1、用途:存放多个值 # 定义方式:[]内以逗号为分隔多个元素,列表内元素无类型限制 # l=['a','b','c'] #l=list(['a','b','c']) # l1=list('hello') # print(l1) # 常用操作+内置的方法 # 按索引存取值(正向存取+反向存取):即可改也可以取 l = ['a', 'b', 'c'] print(id(l)) print(l[-1]) l[0] = 'A' print(id
py3study
2020/01/22
1.2K0
python3–元祖+列表+字典
列表 Python 列表(List) 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。 列表的数据项不需要具有相同的类型。 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示: student = ["zhdya", "zhansan", "lisi","wangwang"] print(student) 输出: ['zhdya', 'zhangsan', 'lisi', 'wangwang'] List的方法 index index中跟的是对象,返回值是
老七Linux
2018/05/31
1.2K0
9. python 列表、元组、字典
('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n')
py3study
2020/01/15
6110
Python 列表解析 字典解析
列表解析 数据格式:[2, -8, -10, -9, 4, 0, 6, -2, 3, 3] from random import randint range_num = [ randint(-10,10) for _ in range(10) ] number = [ i for i in range_num if i >= 0 ] print(number) # filter 函数 number = filter(lambda x : x >= 0 ,range_num) print(list(n
简单、
2018/07/17
1K0

相似问题

Python -从字典列表创建字典

11

在python中从通用的边缘列表创建边缘列表

20

Python指向字典的边缘列表

11

Python从字典列表创建列表

12

python从列表创建字典

317
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档