免费注册 查看新帖 |

Chinaunix

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

老大救急--怎么可以保证全部遍历一遍 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-21 09:45 |只看该作者 |倒序浏览
  1. def f(card,a):
  2.         global i
  3.         for x in a:
  4.                 if x[i] and card[(x[i+1]-1):(x[i+1]-1+x[i+2])]==x[i]:
  5.                         if x not in temp:
  6.                                 temp.append(x);print x
  7.                         if (len(x)-1)>(i+3) and x[i+3]:
  8.                                 i+=3;f(card,temp)
复制代码


这是一个小函数 a是个list  temp=[]
根据if 条件来判断 并把符合条件的放到temp中
但是发现
  1. def f(card,a):
  2.         global i
  3.         for x in a:
  4.                 if x[i] and card[(x[i+1]-1):(x[i+1]-1+x[i+2])]==x[i]:
  5.                         if x not in temp:
  6.                                 temp.append(x);print x
复制代码

只有这部分的时候 可以把符合条件的a的所有元素都遍历一次
但是加上后面的if后 就不能保证全部都会取到
如何能保符合条件的x都压到temp中
谢谢

[ 本帖最后由 wolfg 于 2006-3-21 10:23 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-03-21 10:24 |只看该作者
发代码请使用[code]标签,并且禁用 Smilies
3751 该用户已被删除
3 [报告]
发表于 2006-03-21 10:41 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2006-03-21 10:47 |只看该作者
代码怎么这么乱呢?一行后面还有一行,能不能写成两行。另外

x[i]是怎么可以使用的呢?连个测试的数据都没有,都不知道你这个东西是干嘛的。新加的那段if既修改了i值,又进入到一个递归处理,好象很复杂的样子。

论坛徽章:
0
5 [报告]
发表于 2006-03-21 10:47 |只看该作者
原帖由 3751 于 2006-3-21 10:41 发表
BS自己,看不懂lz写的是什么


我也看不懂,感觉Python代码不该这样,呵呵

论坛徽章:
0
6 [报告]
发表于 2006-03-21 14:05 |只看该作者
各位不好意思
今天早上发上来比较混乱
def f(card,a):
        global i
        for x in a:
                if x[i] and card[(x[i+1]-1):(x[i+1]-1+x[i+2])]==x[i]:
                        if x not in temp:
                                temp.append(x)
                        if (len(x)-1)>(i+3) and x[i+3]:
                                i+=3
                                f(card,temp)

这个函数要达到一个校验卡号的目的
i=0,card为读入的卡号
a则是判断条件 从数据库取 取得后如['955881', 1, 6, '7886', 7, 4, '222', 11, 3, '456', 14, 3, '', '', '', '001', '\xc4\xb5\xb5\xa4xx\xbf\xa8']之类 各位不要注意判断语句
只是想知道怎么样 才能在第三,四,五行的for if语句里 把符合条件的x都遍历一次
现在这么写 有可能碰到一个符合条件的x后 就不管后面有没有还有符合的 就直接走到下面的语句中

论坛徽章:
0
7 [报告]
发表于 2006-03-21 14:46 |只看该作者
那你就只保留必要的代码进行测试好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP