Python 数据结构代码示例(四)
除了之前介绍的几种常用数据结构外,Python 的collections模块,还支持了很多容器数据类型(Container datatypes)。研究了一下,其中counter,deque和defaultdict 对目前的一些场景比较有用,特此记录一下。 1.counter Counter是Dict的一个子类(subclass),主要用于可散列对象的计数场景。具体数据结构实现是Dict,...
除了之前介绍的几种常用数据结构外,Python 的collections模块,还支持了很多容器数据类型(Container datatypes)。研究了一下,其中counter,deque和defaultdict 对目前的一些场景比较有用,特此记录一下。 1.counter Counter是Dict的一个子类(subclass),主要用于可散列对象的计数场景。具体数据结构实现是Dict,...
前两篇文章我们已经介绍了List列表,Tuple元组,Range范围,Set集合,Dict字典这几种数据类型,以及它们支持的一些操作。 如果之前一直使用C语言编程,会感觉Python的数据类型有很多,其实上面只是一小部分,还有很多我们还没有介绍。C语言本身支持的数据类型很少,数组和结构体是两个基本且常用的类型了,再加上强大的指针可以实现各种数据结构了,比如Python官方的解释器Cpyth...
上一篇文章展示了 List 列表, Tuple 元组和Range范围的一些定义和用法,这篇文章继续介绍 Set 集合以及 Dict 字典。 Set是一种包含无序成员(unordered collection)的数据类型, 它包含可散列的不相同的成员对象(distinct hashable objects),这里的可散列的含义是,对象成员是不可修改的,且可以相互比较的,原文如下: A...
上一篇文章SONiC 中的 Python 编程中提到了 Python 的具体应用,为了打好基础,我们先复习一下 Python 内置的数据结构,并编写一些示例代码,展示一下如何使用他们。 List 列表, Tuple 元组和Range范围 List是一种序列类型(Sequence Types), 它包含List,Tuple和Range,序列类型支持一些通用操作: ...
工作这些年的主力开发语言是 C/C++,确切地说是以 C 语言为主。最近一些年由于在 Linux 下开发,Shell 脚本语言用的也多了一些,各种编译构建,服务加载,系统监控等都可以通过 Shell 来实现。除此之外,在设备脚本执行,自动化测试等场景也涉及到了 Python,但是相对于 C 和 Shell,使用量还是少很多。 最近在深入研究交换机开源操作系统 SONiC,发现其中大量用到了...
上一篇文章谈了谈关于 SSH 的那些事儿,对于系统性理解 SSH 有指导作用,这一篇谈一谈 SSL 的那些事儿,二者有类似也有差异的地方,看完两篇文章后,这些异同点自然就体现了出来。另外注意本文提到 SSL 的时候都是大写形式,因为这是一项技术,而不是某个工具或者命令。 其实最近刚刚使用了 Let’s Encropyt 在网站上部署了 HTTPS 服务,参考的文章是免费 HTTPS 证书-...
最近看到一篇文章那些 ssh 教我的事,虽然是 2009 年发布的,虽然我也用了 ssh 很多年,但这些事儿我还真不知道,比如 ssh -L 和 ssh -R 这两个选项的作用,即使 SFTP 知道也用过,但是没有具体去研究原理,所以借着国庆休假的时间,谈谈 SSH 的那些事儿。 SSH 最广为人知的用处就是远程登录了,它比 telnet 更安全,因此现在绝大部分网络设备和服务器都支持 s...
偶然从byvoid的个人简历中知道了buck。简单看了一下知道了这是一个facebook开源的编译工具,但是该github仓库已不再更新,而是转移到了buck2。buck2的介绍是fast multi-language build system,然后下面解释了buck2/buck构建系统的特点和由来。其中提到了多语言的支持,而这也是大型复杂系统的特点,编程语言多,依赖关系复杂,包含测试用例代...
在执行git push的时候打印了下面一段话: warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the d...
1.博客文章《计算机网络那些标识分配资源》提到了TCP/IP网络中一些字段的资源分配情况,其实RFC在很早的时候就有过这种统计,而且更加全面,比如rfc1340,rfc1700,但是从rfc3232开始,这些资源分配被放到在线网站上(www.iana.org),且不再提供rfc格式的更新。之所以这样做,很大程度是因为这些资源一直在随着协议的变化在被更新,RFC这种变化慢的标准文档无法及时覆盖...