免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3185 | 回复: 2
打印 上一主题 下一主题

求教2维列表的遍历问题, 感谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-01 07:40 |只看该作者 |倒序浏览
本帖最后由 crazy_pipi_lu 于 2012-02-01 07:48 编辑

数据存放在2维列表list_G, 读取list_K中的code_K去遍历list_G中的code_G, 匹配上记录最大的rate_K
但是始终不能遍历list_G, 少一些行不能匹配, 不清楚为什么, 输出如下:
initial 7 lines:
[9379, 'G', '0.1830']
[9378, 'G', '0.1752']
[9377, 'G', '0.1929']
[9375, 'G', '0.1950']
[9370, 'G', '0.1872']
[937, 'G', '0.1931']
[93, 'G', '0.1974']
processing:
code_K = 93 rate_K = -1 len_K = 1 len_G = 7
code_K = 93 rate_K = 0.1830 code_G = 9379 rate_G = 0.1830
code_K = 93 rate_K = 0.1929 code_G = 9377 rate_G = 0.1929
code_K = 93 rate_K = 0.1929 code_G = 9370 rate_G = 0.1872
code_K = 93 rate_K = 0.1974 code_G = 93 rate_G = 0.1974
final 3 lines:
[9378, 'G', '0.1752']
[9375, 'G', '0.1950']
[937, 'G', '0.1931']


...... #前面是数据读入

print "initial", len(list_G), "lines:"
for row_G in list_G:
  print row_G

print "processing:"
for row_K in list_K:
  code_K = str(row_K[0])
  rate_K = -1
  len_K = len(list_K)
  len_G = len(list_G)
  print "code_K =", code_K, "rate_K =", rate_K, "len_K =", len_K, "len_G =", len_G
  for row_G in list_G:
    code_G = str(row_G[0])
    rate_G = str(row_G[2])
    if re.match(code_K, code_G):
      if rate_K < rate_G:
        rate_K = rate_G
      print "code_K =", code_K, "rate_K =", rate_K, "code_G =", code_G, "rate_G =", rate_G
      list_G.remove(row_G)

print "final", len(list_G), "lines:"
for row_G in list_G:
  print row_G

论坛徽章:
0
2 [报告]
发表于 2012-02-01 10:57 |只看该作者
找到原因了, remove把列表变短的同时, for循环的游标还在递增, 就堆积了数据在头部

论坛徽章:
0
3 [报告]
发表于 2012-02-02 00:13 |只看该作者
路过学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP