python - 如何获取元组列表的元素
问题描述
我有一组节点
nodes = ["uno","dos","tres","cuatro","cinco","seis"]
和一组边
edges = [("uno", "dos"),
("uno", "tres"),
("dos", "tres"),
("dos", "cuatro"),
("tres", "cuatro"),
("tres", "cinco"),
("cuatro", "cinco"),
("cuatro", "seis"),
("cinco", "seis")]
我已经定义了这些边的倒数
inverses =[(j,i) for (i,j) in edges]
现在我有了我的一套弧线
arcs = edges + inverses
我的问题是我想获得具有确定第一个元素的弧集中的所有元素。那是
ArcsOut[i in nodes] = [(i,j) for (i,j) in arcs for i in nodes for j in nodes].
我想得到这样的东西。如果我要获得所有具有第一个组件“uno”的弧,我希望拥有:
ArcsOut["uno"]= [("uno", "dos"),("uno", "tres"),("dos", "uno"),("tres", "uno")]
但我不知道如何订购。提前致谢!
解决方案
使用以下语法创建字典:
ArcsOut = dict(((i,[(k,l) for k,l in arcs if k == i]) for (i,j) in arcs))
然后 ArcsOut['unos'] = 所需的输出。
/* 编辑 */
性能方面考虑使用defaultdict:
ArcsOut = defaultdict(list)
for k, v in arcs:
ArcsOut[k].append((k,v))
推荐阅读
- php - 为什么来自 endroid 的 QR 码在 codeigniter 4 中无法正确显示
- css - ReactJS - 如何添加/使用引导类?
- kubernetes - 如何在 Kubernetes 中撤销客户端证书?
- php - 使用 php 生成唯一的设备 ID
- android - 跨平台移动SDK开发
- javascript - 根据输入切换按钮(Native Base)
- c# - 如何从 Visual Studio 2019 更新 Azure 数据库?
- python-3.x - TypeError: get() missing 1 required positional argument: 'url' using ChromeDriver and Chrome through Selenium and Python
- azure - 如何使用用于容器的 Azure Monitor 监视 pod 的网络 i/o
- mysql - MySQL中如何选择不包含汉字的值