python技巧分享(十二)

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

1 判断序列为非空

  • 不推荐方式
l = [1]
if len(l) != 0:
    print l

d = {1: 1}
if len(d) != 0:
    print d

t = (1,)
if len(t) != 0:
    print t

s = '1'
if len(s) != 0:
    print s

'''
[1]
{1: 1}
(1,)
1
'''
  • 推荐方式
l = [1]
if l:
    print l

d = {1: 1}
if d:
    print d

t = (1,)
if t:
    print t

s = '1'
if s:
    print s

'''
[1]
{1: 1}
(1,)
1
'''

判断序列是否为非空,建议不要使用len函数,如果序列为None,使用len函数会抛出TypeError异常,就算能确保序列为非None,使用示例中推荐的方式也更符合python惯例,不管序列是None还是空,都能正确判断。另外,推荐的方式比使用len函数运行快。

2 判断list中所有元素是否相同

l = [False] * 3

print l
print len(set(l)) == 1
print l.count(l[0]) == len(l)
print all(e == l[0] for e in l)

'''
[False, False, False]
True
True
True
'''

判断list中所有元素是否相同,可以通过示例中提供的3种方式实现,第一种方式通过set将list中元素去重,如果元素个数是1,则证明所有元素都相同;第二种方式借助list的count方法,计算第一个元素出现的次数是否和list长度相等,如果相等则证明所有元素相同;第三种方式通过all函数和列表解析实现,如果所有元素都等于第一个元素,则证明所有元素都相同,一般推荐第一种方式。

3 获取对象名称

def demo_func():
    pass


class DemoClass(object):
    pass


f = demo_func
c = DemoClass()

print demo_func.__name__
print DemoClass.__name__
print f.__name__
print c.__class__.__name__

'''
demo_func
DemoClass
demo_func
DemoClass
'''

通过访问对象的__name__属性,可以获取类、类型、函数等对象的名称。由示例中可以看到,分别获取了函数名和类名。将函数赋值给变量后,依然可以获取函数名。将类实例化后,需要通过__class__.__name__属性获取类名。

LEo at 21:12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏林德熙的博客

dotnet 设计规范 · 抽象定义

严格来说,只有一个类被其他的类继承,那么这个类就是基类。在很多时候,基类的定义是提供足够的抽象和通用方法和属性、默认实现。在继承关系中,基类定义在上层抽象和底层...

702
来自专栏Python小屋

详解Python中的浅复制与深复制

列表对象的copy()方法返回列表的浅复制。所谓浅复制,是指生产一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。如果原列表中只包含整数、实数、复数等...

3236
来自专栏鬼谷君

Python中的join()函数的用法

Python中有join()和os.path.join()两个函数,具体作用如下:     join():    连接字符串数组。将字符串、元组、列表中的元素以...

451
来自专栏海天一树

小朋友学经典算法(12):分割字符串

在分割字符串之前,先来了解一些跟字符串相关的变量或函数: (1)size_type:size_type由string类类型和vector类类型定义的类型,用以保...

962
来自专栏Laoqi's Linux运维专列

匿名函数

995
来自专栏marsggbo

strspn 和strcspn

1、strcspn 头文件:#inclued<string.h> 定义函数:size_t strcspn(const char *s, const char...

1936
来自专栏Python自动化测试

python的字典学习(六)

本博客主要说明python的字典基本的使用,在python中,字典使用的关键字是dict,使用的是{},下面我们通过一个具体的代码来看python字典类对...

923
来自专栏我的博客

JS闭包

在理解闭包以前.最好能先理解一下作用域链的含义,简单来说,作用域链就是函数在定义的时候创建的,用于寻找使用到的变量的值的一 个索引,而他内部的规则是,把函数自...

2825
来自专栏python读书笔记

python 数据分析基础 day2-数值及字符串数值字符串

今天说一下python 的内置的数据类型以及相应的操作方法 数值 数值类型主要有整数(int)、浮点数(flooat)、长整数(long)、复数(complex...

28410
来自专栏老司机的技术博客

宝宝都能学会的python编程教程5:循环-2

“死循环”是必须要避免的,当然“活循环”也未必都要执行完。 break 语句 比如我们要从一个列表中找到某个特定元素,那么只要找到了这次循环就可以停止了,没有必...

3585

扫码关注云+社区