阿小信大人的头像
Where there is a Python, there is a way. 阿小信大人

Django自定义模板过滤器2014-09-02 04:39

首先给出方法:

:::python
# -*- coding: utf-8 -*-
from django.template import Library
register = Library()

# django模板中没有'world' in 'hello world'这样的
@register.filter
def contains(value, arg):
return arg in value.decode('uft-8')
# 用法 {% if str|contains:'你'

......
#Python#   #django 评论[0]阅读全文[1190]

利用Python字典获得最大值2014-09-02 04:37

有日志文件如下:

svn://192.168.1.7/projects/Project3/server/pyscript/task/duplicate/story25.py@70000
svn://192.168.1.7/projects/Project3/server/pyscript/task/newtask/testory.py@71779
svn://192.168.1.7/projects/Project3/server/pyscript/task/newtask/testory.py@7000
svn://192.168.1.7/proj

......
#Python#   评论[0]阅读全文[1497]

Python的线程在shell中会显示返回值2014-09-02 04:36

代码如下:

:::python
>>> def p(i):
... print i
...
>>> import thread
>>> for i in range(4):
... thread.start_new_thread(p, (i,))
...
100400
78201
4444
243883
>>>

如上,打印出的竟然是随机值不是0123。后来发现是因为start_new_thread()有返回值,输出值和返回值在终端都会

......
#Python#   评论[0]阅读全文[1304]

Python中re模块常用函数2014-09-02 04:33

:::python
##escape(string) 返回的字符创所有非字符数字字符都带有反斜杠。
>>> escape('http://ashin.sinaapp.com/blog')
'http\\:\\/\\/ashin\\.sinaapp\\.com\\/blog'
>>>


##findall(pattern, text [, flag]) 返回text中与pattern匹配的值,如果包含分组,将返回与分组匹配的文本列表,如果不止一个分组,那么列表中的每项都是一个元组。
>>> text='

......
#Python#   #regex 评论[0]阅读全文[1388]

namedtuple命名元组2014-09-02 04:33

普通元组的常见缺陷是需要使用数字下标访问元素,当元素个数太多时就会引起混淆,命名元组可以解决这个烦恼。

:::python
>>> from collections import namedtuple
>>> InetAddr = namedtuple('ia',['host', 'port'])
>>> a = InetAddr('ashin.sinaapp.com','80')
>>> a
ia(host='ashin.sinaapp.com', port='80')
>>> a.host
'ashin.s

......
#Python#   评论[0]阅读全文[1319]

itertools迭代器2014-09-02 04:32

:::python
>>> from itertools import *
>>> c=chain([1,2,3],[4,5,6])
>>> c

>>> for i in c:print i
...
1
2
3
4
5
6
>>> #chain将一组迭代器链接起来形成一个新的迭代器,第一个迭代器用完则从第二个迭代器再生成,直到用完。
...
>>> for i in combinations([1,2,3,4], 2):print i

......
#Python#   评论[0]阅读全文[1147]

使用defaultdict作为跟踪数据的容器2014-09-02 04:32

例如跟踪字符串s中每个单词的位置:

:::python
>>> from collections import defaultdict
>>> s="ashin chen C ashin chen C ashin chen C"
>>> words = s.split()
>>> wordlocations=defaultdict(list)
>>> for n, w in enumerate(words):
... wordlocations[w].append(n)
...
>>> wordl

......
#Python#   评论[0]阅读全文[1143]