微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何比较列表中的项目是否存在反向

如何解决如何比较列表中的项目是否存在反向

谁能帮我解决以下问题的代码

编写一个执行以下操作的程序: 接受以下输入: (1) 节点数 (2) 表示边的二维数组。第 i 条边将节点 input2[0][i] 连接到节点 input2[1][i]。 假设如果节点之间有边,则可以在节点之间绘制一条线,打印节点之间可以绘制的线数。

Sample test case:1
input1: 4
input2: {{1,1,1},{2,3,4}}
output1: 3

到目前为止,我所做的是: 我比较了列表中不相等且工作正常的项目 但我想避免比较像 1--2 和 2--1 这样的元素,因为它们会被认为是相同的 &需要忽略......我尝试了很多,但我想不出任何可能的方法

PS:我说的是输入案例,例如: 输入 2: {{1,2,3},1}} 然后可以绘制的线/边是 (1,2),(1,3),(2,3) & 像 (2,1) 和 (3,2) 这样的点将被避免,因为它们已经存在,所以我的问题是如何忽略检查已创建边的位置?

解决方法

可能是这样的:

>>> def lines(nodes,edges):
...     return len(set((a,b) if a >= b else (b,a) for a,b in zip(*edges)))
... 
>>> lines(4,((1,1,1),(2,3,4)))
3
>>> lines(4,2),4,1)))
3
>>> 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。