1. 有了list comprehension还要map函数干什么?需要么?不需要么?
map函数只在一种情况下比list comprehension有优势,那就是它可以被当做一个参数被传递给其他函数。当然,一般来说大家也很少这么干……
2. ord() 只能产生无符号整数(unsigned char, 0-255),如果你在一个字节一个字节的读取流,那么把这每个自己转换成有符号整数的方法有很多:
(a) 用标准库里的 array 模块
(b) 用标准库里的 struct 模块
(c) 用 bytearray 数据类型
(d) signed = unsigned if unsigned <= 127 else unsigned - 256
signed = (unsigned & 127) - (unsigned & 128)
signed = (unsigned & 127) * 2 - unsigned
signed - unsigned - 2 * (unsigned & 128)
3. evaluate 1^2+2^2+3^2-4^2-5^2+6^2+7^2+8^2-9^2-10^2+...-2010^2, where each three consecutive + must be followed by two - (^ meaning ** in this context)
>>> sum((1, 1, 1, -1, -1)[(x-1) % 5] * x**2 for x in xrange(1, 2011))
4. 应该小心的将反斜杠(\)作为行延续符(line continuation)使用。虽然我在pep8中和其他关于pythonic的文档中都看到了这一点,但我在维护现有代码的时候并没法更多的实践这一点,因为这些代码的作者甚至不知道pep8的存在,更不用说什么将每行长度限制在80个字符以内的狗屁龟腚了。
5. 函数也是可以被pickle的,但是不能被marshal
订阅:
博文评论 (Atom)
没有评论:
发表评论