该程序实现多重图转化成简单图。
m2sgraph.py :
- #! /usr/bin/python
-
# filename : m2sgraph.py
-
# author : Jesse
-
# update : 2011/08/15 19:37
-
-
adjlist = [[1, 1, 2, 4], [1, 3, 4], [3, 2, 4], [1, 2, 3, 4]]
-
v = len(adjlist)
-
-
print 'before m2sgraph :'
-
for i in range(v) :
-
print i+1, ' ', adjlist[i]
-
-
# delete the same number
-
i = 0
-
for l in adjlist :
-
adjlist[i] = list(set(l))
-
i += 1
-
-
# remove ring
-
i = 1
-
for l in adjlist :
-
if l.count(i) > 0 :
-
l.remove(i)
-
i += 1
-
-
print 'after m2sgraph :'
-
for i in range(v) :
-
print i+1, ' ', adjlist[i]
一些简单的说明:
1. list(set(l))的作用是出去列表l中的重复元素;首先将列表l转换成集合(使用set强制转换),由于集合中不允许出现相同元素,故消除了列表l中的重复元素,最后将转换成集合的l再转换成列表(使用list强制转换)。
2. 注意消除环的过程中count和remove方法的使用。
阅读(1202) | 评论(0) | 转发(0) |