 |
|
futursolo
富貴不能淫,貧賤不能移,威武不能屈,此之謂愛多路。
🏢 未來領域 / Master of The Futures' Territory
V2EX member #85033, joined on 2014-12-03 18:29:47 +08:00
|
 |
Per futursolo's settings, the topics list is hidden |
Deals info, including closed deals, is not hidden
futursolo's recent replies
写Objective-C的菊苣
(~ ̄▽ ̄)ノ
Python小白看着你...
Tornado(知乎就是基于这个Web Framework的)的主动式文件缓存和异步操作起到了很大的作用。
知乎应该是缓存静态文件的,但是动态页面并不缓存。
你打开Chrome的开发者工具之后再刷新知乎的页面,可以看到静态内容几乎全都是304。
Node.js: Promise
Python(Tornado based Application): Future(Use with yield)
Go: goroutine
如果你指的是字典(Dict),那么应该没有顺序(顺序是随机的,正反向都无所谓).
如果你指的是列表,可以这样操作:
for item in (list[::-1])
如果你指的是有序字典,那么这样操作:
for item in (list(dict.keys())[::-1])
使用生成器可以避免上面所说的内存不够用的情况。
这里给一个例子:(V2EX会把代码中的空格自动删掉,请自己补全)
import math
import time
def is_prime(number):
if number > 1:
if number == 2:
return True
if number % 2 == 0:
return False
for current in range(3, int(math.sqrt(number) + 1), 2):
if number % current == 0:
return False
return True
return False
def get_primes(number):
while True:
if is_prime(number):
yield number
number += 1
start = time.time()
prime = get_primes(1)
prime_sum = 0
while True:
this_prime = next(prime)
if this_prime <= 1000000:#改一下这里的数字
prime_sum += this_prime
else:
break
print("Result:" + str(prime_sum))
print ("Finished! Time Used: " + str(time.time() - start) + "s.")
至于楼上所说的筛法算素数的问题,可能也需要比较大的内存
(你还是要把已经算出来的素数保存起来,在这里暂时不用了)
这个是Python3的代码,Python2请自己改一下。
要想算的快一点,可以使用PyPy3。
@
clino 真的是...
没想到GitHub也会用Flash...
GitHub怎么可以直接复制内容到剪切板的?(页面右侧的项目git clone 地址)