为了账号安全,请及时绑定邮箱和手机立即绑定

请教各位大神,一个列表A=[2,3,4],如何将其转换成B=[(2,3),(3,4),(4,2)]

请教各位大神,一个列表A=[2,3,4],如何将其转换成B=[(2,3),(3,4),(4,2)]

蔷薇之下 2017-06-30 22:25:31
相当于一个无向图顶点为〔2,3,4〕,如何输出无向图的所有边……谢谢*^_^*
查看完整描述

3 回答

?
5E

TA贡献115条经验 获得超39个赞

A=[2, 3, 4]
newA=[]
counter = 0
for x in A:
    if (counter+1) == len(A):
        tup = (A[counter],A[0])
    else:
        tup = (A[counter],A[counter+1])
    newA.append(tup)
    counter += 1
print newA

随便写的,还可以再简化……

查看完整回答
1 反对 回复 2017-07-03
?
清波

TA贡献165条经验 获得超90个赞

无向图所谓无向其实就是从顶点中取出两个顶点的组合(非排列),Python中有一个专门的包是做这个的:

from itertools import combinations as comb

def undigraph(a):
    try:
        return list(comb(a,2))
    except Exception as e:
        print(e)
        
print(undigraph([2,3,4]))
>>>  [(2, 3), (2, 4), (3, 4)]


查看完整回答
反对 回复 2017-07-04
  • 3 回答
  • 2 关注
  • 1953 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信