BLOG
Enjoy when you can, and endure when you must.
MAR 29, 2016/Python
提防黑盒子:关注 Python 使用中的细节(一)

Python 是一门非常有趣的语言,他为我们准备了大量的组件,让我们的开发工作更加轻松。但这些组件有时候也因为这样的“黑盒子”特性而成为一种风险,必须时刻提防。本文整理在开发、学习过程中遭遇、瞥见或收集到的一些“危险”场景。这一次关注的是在列表查询字符串拼接中可能存在的陷阱。

DEC 11, 2013/Python
以随机顺序访问列表的元素
random是Python标准库中提供的专门用于生成随机数的模块,我曾在《利用Python生成随机数》中提到了利用random模块来生成随机数的几种方法。今天又出现了一个新的需求,打乱列表元素。还是正式点说吧,就是以随机顺序访问列表的元素。要想以随机的顺序访问列表,最简单的方法是首先将列表转化为随机的顺序,然后再线性的访问处理后的列表即可。random中就有方法提供了这样的“洗牌”操作,那就是random.shuffle。来看看下面的例子:>>> L = range(10) >>> L [0, 1,...
DEC 06, 2013/Python
Python列表分片与技巧
Python的列表是很常用的数据类型。列表是有序的,因此支持类似Python字符串对象中的大部分操作方式。并且因为列表属于可变数据类型,因此还可以支持原处修改。本文主要关注列表的分片操作。通过偏移量来获取列表中对应位置的元素是列表最基本的操作:>>> l = range(10) >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> l[2] 2当需要获取列表中的...
NOV 20, 2013/数据库
一个简单的Redis邮件发送队列
Redis一大特色就是拥有多种数据类型,其中的LIST是有序列表,利用其特性可以很方便的模拟一个队列。下面的代码示例展示了一个简单的Redis邮件发送队列:def send_email_via_queue(conn, to_email, content):     data = {         'to_email': to_email,     ...
NOV 14, 2013/Python
利用Python列表实现堆栈(一):剖析
堆栈是一种非常常见且简单易用的数据结构,适用在多种应用场合。堆栈是一种数据项按序排列的数据结构,只能在一端(栈顶)对数据项进行插入和删除,遵循后进先出的原则。在不同的需求中,栈的操作可能不仅限于进栈和出栈,可能还需要检测栈是否为空,获取栈顶元素但并不将其弹出,遍历栈内所有元素,或者检测某元素是否在栈中存在等等。在Python中,一个简单的列表元素通常足够用来实现栈:它允许对其中的元素进行任意操作,从任意一端插入或取出元素。下表总结了一些Python内置的列表操作方法来模拟栈操作。操作栈顶处于列表末尾栈顶位于列表起始位置栈顶位于列表起始位置新建stack=['a', ...
OCT 17, 2013/数据库
学习笔记:Redis入门之数据类型 —— LIST
LIST 就是有序的列表,可以从左侧或者右侧插入/弹出值,通过偏移量获取特定的元素等功能。以下是基本操作:推入元素:1L >>> conn.lpush('list-key', 'first') 2L >>> conn.rpush('list-key', 'new last') 3L获取子列表:>>> conn.lrange('list-key', 0, -1)弹出元素:...
1