Python奇技淫巧,看看你知道几个

浏览: 1446

1、isinstance

isinstance 函数可用于判断实例的类型,其实它的第二个参数可以是多个数据类型组成的元组。例如:

isinstance(x, (int, float))

# 等价于

isinstance(x, int) or isinstance(x, float)

类似的函数还有字符串的 startswith 方法和 endswith 方法,例如:

s.startswith(('"""', "'''"))

# 等价于

s.startswith("'''") or s.startswith('"""')

2、用 http.server 共享文件

# python3
python3 -m http.server

# python2
python -m SimpleHTTPServer

效果如下图所示,通过浏览器方便局域网共享文件

image.png

3、zip 函数实现字典键值对互换

>>> lang = {"python":".py", "java":".java"}

>>> dict(zip(lang.values(), lang.keys()))
{'.java': 'java', '.py': 'python'}

4、查找列表中出现次数最多的数字

[1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4, 5]
>>> max(set(test), key=test.count)
4

5、使用 __slots__ 节省内存

class MyClass(object):
   def __init__(self, name, identifier):
       self.name = name
       self.identifier = identifier
       self.set_up()

print(sys.getsizeof(MyClass))
>>> 1016

class MyClass(object):
   __slots__ = ['name', 'identifier']

   def __init__(self, name, identifier):
       self.name = name
       self.identifier = identifier
       self.set_up()

print(sys.getsizeof(MyClass))
>>> 888

image.png

推荐 0
本文由 刘志军 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册