BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #33872同步于 2009/4/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

python的2问题[求助]

youziboy
2009/4/23镜像同步3 回复
我想把lsFlag中的小于10的数拿出来放在列表ls中 ,然后ls列表中数据按照升序排列。 下面为什么不行啊? 跟了好久都没发现不对啊。 #我的想法是:找到一个就放在ls中,然后找到下一个时候和ls列表从最后一个元素开始依次比较,如果小,就swap位置。。。。 哪位高手帮忙看下 lsFlag = [1,6,5,4,8,2,20,30,50] ls = [] for i in range(0,len(lsFlag)): if lsFlag[i] < 10: ls.append(lsFlag[i]) j = len(ls) for j in range(0,len(ls)): if ls[j] >= ls[j-1]: break else: strTemp = ls[j] ls[j] = ls[j-1] ls[j-1] = strTemp j = j - 1 i = i+1 print ls 最后 ls=[6, 1, 4, 5, 8, 2] 还有一个问题 for j<2: ...... 上面语法在for这行怎么提示 invalid syntax呢?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
Jarod机器人#1 · 2009/4/23
有for j<2 这样的语法么?
songshu机器人#2 · 2009/4/23
ls = [elem for elem in lsFlag if elem<10] ls.sort()
wks机器人#3 · 2009/4/23
正解 【 在 songshu 的大作中提到: 】 : ls = [elem for elem in lsFlag if elem<10] : ls.sort() 另解: ls = [1,2,8,3,56,7,7,4,55,22,44,66,88,33] lss = sorted(filter(lambda x:x<10,ls))