python技巧分享(十五)

这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。

1 lambda

#!/usr/bin/env python
# coding=utf8


add = lambda x, y : x + y
print add(1, 2)
# 3

print (lambda x, y: x + y)(2, 3)
# 5

lambda主要用于实现匿名函数,定义一些简短的、轻量级的函数,但是牺牲了一定的可读性。由示例中可以看到,这里通过lambda定义了一个add函数,lambda自动实现了return功能,add的调用方式和正常的函数一样。另外,lambda定义的函数可以不赋值给任何变量,直接就可以调用。

2 子类判断

#!/usr/bin/env python
# coding=utf8


class BaseClass:
    pass


class SubClass(BaseClass):
    pass


class OtherClass:
    pass


print issubclass(SubClass, BaseClass)
# True
print issubclass(OtherClass, BaseClass)
# False

通过内置函数issubclass,可以判断一个类是否属于另外一个类的子类。由示例中可以看到,SubClass是BaseClass的子类,而OtherClass不是BaseClass的子类。

3 元素统计

#!/usr/bin/env python
# coding=utf8

import collections


l = 'abbcccdddd'
list_counter = collections.Counter(l)
print list_counter
# Counter({'d': 4, 'c': 3, 'b': 2, 'a': 1})
print list_counter.most_common(3)
# [('d', 4), ('c', 3), ('b', 2)]

借助collections模块,可以实现一个可迭代对象的计数功能。由示例中可以看到,这里分别计算出了列表l中每个字母出现的次数。通过调用most_common方法,还可以得到出现次数最多的前三个字母。详情请参考:https://docs.python.org/2/library/collections.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,606评论 1 118
  • 环境准备[http://www.cnblogs.com/ddrsql/p/6030110.html#prepare...
    UtopiaLee阅读 586评论 0 0
  • 关键点## RAII机制 C++操作符重载 参考链接## C++11智能指针之unique_ptr shared_...
    lutery阅读 1,038评论 0 0
  • 阳光下绽放的我,美丽,动人。没有人知道,那是为你。你也不知道,那天,树林里的遇见,我便再也不能自己。不为风...
    梁红玉阅读 294评论 0 1
  • 如今的花果山是个景区 世上当然也就没有了那块 钟天地灵气的顽石 却不知这世上 突然又从哪里冒出来 一只猴子 和那只...
    刘汉皇阅读 194评论 3 2