basestring
返回值: None
常用于: 此抽象类型是str和unicode的超类,它不能被调用或是实例化,但是可以用来测试一个对象是否是str或是unicode的实例,isinstance(obj, basestring)等同于isinstance(object, (str, unicode))
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
def main():
"""Main function."""
print isinstance('爱', basestring)
print isinstance('爱', (str, unicode))
if __name__ == '__main__':
main()
unichr(x)
返回值: 字符对象
常用于: 返回unicode码为整数i的unicode字符,这个是unicode字符串ord()的反转
enumerate(iterable[, start])
返回值: 枚举对象
常用于: iterable是可迭代对象,start是起始索引,它返回的迭代器的next()方法返回一个元祖(索引,当前迭代元素)
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
# 模拟枚举对象(生成器代替),都返回可迭代对象
def enum_generate(iterable, start=0):
"""Analog enumeration object.
Args:
iterable: iterable object
start : index start number
Returns:
generation
"""
for cur_item in iterable:
yield start, cur_item
start += 1
def main():
"""Main function."""
cur_set = ('run a command.',
'seld a file',
'exit')
for cur_index, cur_item in enum_generate(cur_set, start=1):
print cur_index, cur_item
if __name__ == '__main__':
main()
iter(collection)/iter(callable, sentinel)
返回值: 迭代对象
常用于: 如果没有sentinel,则collection必须是一个集合对象(要么支持迭代协议,要么支持序列协议),如果有sentinal则callable必须是可调用对象,迭代直到sentinel抛出StopIteration
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
def main():
"""Main function."""
# 当迭代到当前为''时抛出StopIteration错误
with open('/etc/passwd', 'r+b') as fhandle:
for cur_line in iter(fhandle.readline, ''):
print cur_line,
if __name__ == '__main__':
main()
max(iterable[, key=func])/max(a, b, c, ...[, key=func])
返回值: 对象
常用于: 返回可迭代对象中最大的元素或者返回2个或是多个参数中最大的参数,可选的key排序函数
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
def main():
"""Main function."""
cur_set = ('f1', 'f11', 'f2', 'f12')
print max(cur_set, key=lambda s: int(s[1:]))
if __name__ == '__main__':
main()
min(iterable[, key=func])/min(a, b, c, ...[, key=func])
返回值: 对象
常用于: 返回可迭代对象中最小的元素或者返回2个或是多个参数中最大的参数,可选的key排序函数
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
def main():
"""Main function."""
cur_set = ('f1', 'f11', 'f2', 'f12')
print min(cur_set, key=lambda s: int(s[1:]))
if __name__ == '__main__':
main()
dict()/dict(mapping)/dict(iterable)/dict(**kwargs)
返回值: 字典对象
常用于: 创建一个新字典,dict对象就是字典类
list()/list(iterable)
返回值: 列表对象
常用于: 创建一个列表,list对象就是列表类
set()/set(iterable)
返回值: 集合对象
常用于: 创建一个集合,set对象就是集合类
frozenset()/frozenset(iterable)
返回值: 集合对象
常用于: 创建一个不可变集合对象
str(object)
返回值: 字符串对象
常用于: 对象没有__str__()方法则尝试返回对象公用方法__repr__(),eval(repr(obj))==obj,迭代器无法重构
sorted(iterable, cmp=None, key=None, reverse=False)
返回值: 对象
常用于: iterable是可迭代对象,cmp是接受两个参数的比较函数,最终返回小于0,等于0,大于0,key只接收一个参数的函数名,用于从每个可迭代对象中选择一个比较的关键字,reverse表示是否反向排序,默认为False,因为key比cmp要快,所以cmp已经很少用
tuple() /tuple(iterable)
返回值: 元祖对象
常用于: 创建一个元祖,tuple对象就是元祖类,*符号可以对元祖解包
# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
def show_info(*args):
"""Show user information.
Args:
args: variable-length arguments
Returns:
str
"""
return '''{0[0]}' information
user_age: {0[1]}
user_sex: {0[2]}
user_address: {0[3]}'''.format(args)
def main():
"""Main function."""
user_info = ('limanman', 24, 'man', 'hangzhou')
# 远组解包
print show_info(*user_info)
if __name__ == '__main__':
main()
xrange(stop)/xrange(start, stop[, step])
返回值: 迭代对象
常用于: 与range()非常相似,但是它返回一个xrange对象而不是一个列表,xrange()只会记录内存开始结束地址然后每次迭代获取等长元素,所以效率更高更节省内存