Chinaunix首页 | 论坛 | 博客
  • 博客访问: 117834
  • 博文数量: 23
  • 博客积分: 495
  • 博客等级: 下士
  • 技术积分: 252
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-05 20:44
文章分类
文章存档

2011年(23)

分类: Python/Ruby

2011-08-16 21:54:15

该程序实现多重图转化成简单图。
m2sgraph.py : 
  1. #! /usr/bin/python
  2. # filename : m2sgraph.py
  3. # author : Jesse
  4. # update : 2011/08/15 19:37

  5. adjlist = [[1, 1, 2, 4], [1, 3, 4], [3, 2, 4], [1, 2, 3, 4]]
  6. v = len(adjlist)

  7. print 'before m2sgraph :'
  8. for i in range(v) :
  9.     print i+1, ' ', adjlist[i]

  10. # delete the same number
  11. i = 0
  12. for l in adjlist :
  13.     adjlist[i] = list(set(l))
  14.     i += 1

  15. # remove ring
  16. i = 1
  17. for l in adjlist :
  18.     if l.count(i) > 0 :
  19.         l.remove(i)
  20.     i += 1

  21. print 'after m2sgraph :'
  22. for i in range(v) :
  23.     print i+1, ' ', adjlist[i]

一些简单的说明:
1. list(set(l))的作用是出去列表l中的重复元素;首先将列表l转换成集合(使用set强制转换),由于集合中不允许出现相同元素,故消除了列表l中的重复元素,最后将转换成集合的l再转换成列表(使用list强制转换)。

2. 注意消除环的过程中count和remove方法的使用。
阅读(1230) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~