本文主要是介绍Python 实现类似C++的bitset类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C++ 的 bitset 和 Java 的 BitSet 在位操作中都十分方便和强大,能够极大地节省内存,提高操作效率。遗憾的是,Python 竟然没有提供类似的类或模块。不过利用 Python 本身的数据结构和位操作的强大能力,实现一个类似的 bitset 类,十分容易,下面我们就来纯手工打造一个属于自己的 Python 的 BitSet 类。本文抛砖引玉,在实际应用中,需要对异常进行处理,例如对输入位置的合法性判断。好了,废话不多说,直接上实现代码。
Python的 BitSet 类实现
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2015 By Thomas Hu. All rights reserved.@author : Thomas Hu
@version: 1.0
@created: 2015-4-24
'''
import arrayclass BitSet(object):# from low to high "00000001 00000010 00000011", the array is [1, 2, 3]def __init__(self, capacity):#"B"类型相当于 C 语言的 unsigned char, 即占用1byte(8位),所以size大小设置为8self.unit_size = 8self.unit_count = int((capacity + self.unit_size - 1) / self.unit_size)self.
这篇关于Python 实现类似C++的bitset类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!