-
玩python python对象的浅拷贝与深拷贝
在前面的学习中,我们其实已经接触到了很多 Python 对象比较和复制的例子,比如下面这个,判断 a 和 b 是否相等的 if 语句:if a == b:再比如第二个例子,这里 l2 就是 l1 的拷贝。l1 = [1, 2, 3]l2 = list(l1)但你可能并不清楚,这些语句的背后发生了什么。比如,l2 是 l1 的浅拷贝(shallow copy)还是深度拷贝(deep copy)呢?a == b是比较两个对象的值相等,还是两个对象完全相等呢?关于这些的种种知识,我希望通过这节课...…
-
玩python 面向对象(2) 实现一个搜索引擎
承接上文,今天这节课的主要目的是,带你模拟敏捷开发过程中的迭代开发流程,巩固面向对象的程序设计思想。我们将从最简单最直接的搜索做起,一步步优化,这其中,我不会涉及到过多的超纲算法,但不可避免会介绍一些现代搜索引擎中的基础概念,例如语料(corpus)、倒序索引(inverted index)等。如果你对这方面本身有些了解,自然可以轻松理解;即使你之前完全没接触过搜索引擎,也不用过分担心,我会力求简洁清晰,降低学习难度。同时,我希望你把更多的精力放在面向对象的建模思路上。“高大上”的搜索引擎...…
-
玩python 面向对象(1) 从生活中说起
很多朋友最开始学编程的时候,是从 C++ 或者 JAVA 语言入手的。他们好不容易磕磕绊绊地搞懂了最基本的数据类型、赋值判断和循环,却又迎面撞上了 OOP (object oriented programming) 的大墙,一头扎进公有私有保护、多重继承、多态派生、纯函数、抽象类、友元函数等一堆专有名词的汪洋大海中找不到彼岸,于是就放弃了进阶之路。相比之下,Python 是一门相对友好的语言,它在创立之初就鼓励命令交互式的轻量级编程。理论上,Python 的命令式语言是图灵完备的, 也就是...…
-
玩python 字符串
什么是字符串呢?字符串是由独立字符组成的一个序列,通常包含在单引号(’‘)双引号(”“)或者三引号之中(’’’ ‘'’或””” “”“,两者一样),比如下面几种写法。name = 'jason'city = 'beijing'text = "welcome to jike shijian"这里定义了 name、city 和 text 三个变量,都是字符串类型。我们知道,Python 中单引号、双引号和三引号的字符串是一模一样的,没有区别,比如下面这个例子中的 s1、s2、s3 完全一样。s...…
-
玩python 进阶 元组和列表的内存分配机制
https://www.jianshu.com/p/24090fb63968从内存利用和CPU利用开始了解List和Tuple的优缺点定义List:动态数组,元素可变,可改变大小(append,resize)Tuple:静态数组,不可变,数据一旦创建后不可改变List的内存利用 当创建N个元素的List时,Python的动态内存分配长N+1个元素的内存,第一个元素存储列表长度,和列表的元信息。 当Append一个元素时,Python将创建一个足够大的列表,来容纳N个元素和将要被追加的元...…
-
玩python 字典和集合基础
基础那究竟什么是字典,什么是集合呢?字典是一系列无序元素的组合,其长度大小可变,元素可以任意地删减和改变。不过要注意,这里的元素,是一对键(key)和值(value)的配对。相比于列表和元组,字典的性能更优,特别是对于查找、添加和删除操作,字典都能在常数时间复杂度内完成。而集合和字典基本相同,唯一的区别,就是集合没有键和值的配对,是一系列无序的、唯一的元素组合。首先我们来看字典和集合的创建,通常有下面这几种方式:d1 = {'name': 'jason', 'age': 20, 'gend...…
-
玩python 列表与元组用哪一个好
列表和元组基础首先,我们需要弄清楚最基本的概念,什么是列表和元组呢?实际上,列表和元组,都是一个可以放置任意数据类型的有序集合。在绝大多数编程语言中,集合的数据类型必须一致。不过,对于 Python 的列表和元组来说,并无此要求:相同点:l = [1, 2, 'hello', 'world'] # 列表中同时含有 int 和 string 类型的元素print(l) # [1, 2, 'hello', 'world']tup = ('jason', 22) # 元组中同时含有int和 st...…
-
玩数据 - 大胆深入
大胆深入…
-
玩数据 - 中流击水
中流击水…
-
玩数据 - 小试牛刀
小试牛刀…