为了账号安全,请及时绑定邮箱和手机立即绑定

print [x for x in range(100,1000) if str(x)[0]==str(x)[2]] 是不是更精简

print [x for x in range(100,1000) if str(x)[0]==str(x)[2]]


正在回答

2 回答

没看出来有多精简,而且100遍历到1000得耗费多长时间~还不如:

print [x*100+y*10+x for x in range(1,9) for y in range(1,9)]

不过感觉还是以字符形式组合快,虽然占资源较多:(不知道对不对,凑合看吧)

import time, sys
t1=time.time()
a=[x for x in range(100,1000) if str(x)[0]==str(x)[2]]
t2=time.time()
print t2-t1
t1=time.time()
b=[x+y+x for x in '123456789' for y in '0123456789']
t2=time.time()
print t2-t1
c=[x*100+y*10+x for x in range(1,9) for y in range(1,9)]
t2=time.time()
print t2-t1
print sys.getsizeof(a)
print len(a)
print sys.getsizeof(b)
print len(b)
print sys.getsizeof(c)
print len(c)


0 回复 有任何疑惑可以回复我~
#1

lingyi 提问者

非常感谢!
2015-03-29 回复 有任何疑惑可以回复我~
#2

势无形

十位数可以取0的哦
2015-03-31 回复 有任何疑惑可以回复我~
#3

lymo 回复 势无形

我知道,贪方便复制的,懒得改了
2015-04-01 回复 有任何疑惑可以回复我~

你这样肯定是字符串快点啊,你都定义了字符串了,其他的还要通过range生成

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758627    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

print [x for x in range(100,1000) if str(x)[0]==str(x)[2]] 是不是更精简

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信