求一段python代码写法

eastred 2013-08-04 12:51:23

r = []
for i in range(x-1, -1, -1):
if self.pos(i, y) == 0:
r.append(i)
else:
break

for i in range(x+1, self._width):
if self.pos(i, y) == 0:
r.append(i)
else:
break


以上的python代码,求列表解析或者函数式编程的写法,谢谢。
...全文
197 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2013-08-04
  • 打赏
  • 举报
回复
貌似按原写法即可,不要强要写成列表解析,没少打几个字看了也头疼...
ImN1 2013-08-04
  • 打赏
  • 举报
回复
补充一下: 对于第二个循环写成表达式(r2/r3也可以合并一行),因为原循环有break,而改成表达式则是遍历,如果计算复杂或者range很大,效率会更低
ImN1 2013-08-04
  • 打赏
  • 举报
回复
r1=[i for i in range(x-1, -1, -1) if self.pos(i, y) == 0] r2=[i if self.pos(i, y) == 0 else False for i in range(x+1, self._width)] r3=[x for i, x in enumerate(r2) if all(r2[:i + 1])] r = r1.extend(r3) 不知道x, y,所以无法测试

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧