内建函数.集合操作类

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()只会记录内存开始结束地址然后每次迭代获取等长元素,所以效率更高更节省内存

转载于:https://my.oschina.net/pydevops/blog/618367

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值