python生成器(generator)

今天心血来潮想刷Leetcode,发现了一道没有AC的Easy题。无脑Gank掉之后突然想起来生成器来做的话,效率可能会高一点,所以趁机也温习了一下生成器。

def fizzBuzz(n):
    for i in range(1, n+1):
        if i % 15 == 0:
            yield "FizzBuzz"
        elif i % 5 == 0:
            yield "Buzz"
        elif i % 3 == 0:
            yield "Fizz"
        else:
            yield str(i)
tt = fizzBuzz(16)
try:
    print(tt.next())
except Exception,e:
    pass

Python黑魔法——一行实现多线程

在 Python 中有个两个库包含了 map 函数: multiprocessing 和它鲜为人知的子库 multiprocessing.dummy.
这里多扯两句: multiprocessing.dummy? mltiprocessing 库的线程版克隆?这是虾米?即便在 multiprocessing 库的官方文档里关于这一子库也只有一句相关描述。而这句描述译成人话基本就是说:”嘛,有这么个东西,你知道就成.”相信我,这个库被严重低估了!
dummy 是 multiprocessing 模块的完整克隆,唯一的不同在于 multiprocessing 作用于进程,而 dummy 模块作用于线程(因此也包括了 Python 所有常见的多线程限制)。
所以替换使用这两个库异常容易。你可以针对 IO 密集型任务和 CPU 密集型任务来选择不同的库。

import urllib2
from multiprocessing.dummy import Pool as ThreadPool
urls = [
 'http://www.python.org',
 'http://www.python.org/about/',
 'http://www.onlamp.com/pub/a/python/2003/04/17/metaclasses.html',
 'http://www.python.org/doc/',
 'http://www.python.org/download/',
 'http://www.python.org/getit/',
 'http://www.python.org/community/',
 'https://wiki.python.org/moin/',
 'http://planet.python.org/',
 'https://wiki.python.org/moin/LocalUserGroups',
 'http://www.python.org/psf/',
 'http://docs.python.org/devguide/',
 'http://www.python.org/community/awards/'
 # etc..
 ]
 # Make the Pool of workers
 pool = ThreadPool(4)
 # Open the urls in their own threads
 # and return the results
 results = pool.map(urllib2.urlopen, urls)
 #close the pool and wait for the work to finish
 pool.close()
 pool.join()

Leetcode 461. Hamming Distance

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.
Given two integers x and y, calculate the Hamming distance.
Note:
0 ≤ xy < 231.
Example:

Input: x = 1, y = 4
Output: 2
Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑
The above arrows point to positions where the corresponding bits are different.
class Solution(object):
def hammingDistance(self, x, y):
    """
    :type x: int
    :type y: int
    :rtype: int
    """
    str_x = bin(x)
    str_y = bin(y)
    count = 0
    if len(str_x) <= len(str_y):
    str_x, str_y = str_y, str_x
    for i in range(1, len(str_y)-1 ):
        if str_x[-i] != str_y[-i]:
            count += 1
    for i in range(len(str_y)-1, len(str_x)-1):
        if str_x[-i] == "1":
            count += 1
    return count

我的站点是不是有点Low啊~~

看了几个著名网红的Blog,发现这群家伙各种轮子用的溜得飞起,页面也炫酷无比。
再回头看看我这个基本没怎么修葺过的原始Wordpress,真™不好意思。
不过话说回来,我一个后台狗和那帮前端狗争这个干嘛~ ~
打算等回学校了换装Typecho,抽空得搞一个导入工具了。

锐速是个好东西

昨天VPN用的不顺心,怒拿Vultr搭了个SS服务。
看Youtube测试了一下,基本上看480P就有点吃力了。于是在91yun上找到了锐速的破解版。这东西可以无视拥塞协议,泰迪发包。
安装的过程中还出了一点小插曲,Centos 7的内核版本有点超前了,于是强行降了内核,成功安装。
安装之后再测试,发现1080P已经无压力了。
Nice~

终极Terminal

这两天发现ZSH、tmux再加上Vim简直天作之合啊!
ZSH可以用Oh-my-Zsh来搞定
tmux的话我觉得有这最关键的几行配置就够了:

setw -g mouse-resize-pane on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g mode-mouse on