- 主题:请推荐 Python 版的数据结构书籍
哥...你是不是没实际做过开发?
c++用stl,用类自己写那是学生上课干的事儿。
【 在 seablue 的大作中提到: 】
: 不同的语言组织数据结构的难度和方法不一样。
: 比如:C没有class,一般用struct来组织数据;而如果用C++,有了class就方便多了。
: 而python里面干脆有很多基础数据结构就是现成的,程序员只需把注意力放在算法上即可。
: ...................
--
FROM 114.246.239.*
在 Python 里论常用,基本的都有
剩余的只要会写类和算法,就差不多了
你要是知道我的需求,就会明白我为什么这么问
【 在 coocodelie 的大作中提到: 】
: 别研究回字的几种写法了,没啥意义,会写最常用的就行
--
FROM 120.253.228.*
多谢推荐,正好给我指路
侧重算法挺好的
【 在 seablue 的大作中提到: 】
: 这本行吗?不过我觉得这本侧重于算法,因为基本的数据结构python都有。
: 数据结构与算法:Python语言实现
: [美] 迈克尔 T. 古德里奇(Michael,T.,Goodrich),罗伯特·塔马 著,张晓 赵晓南等译 译
: ...................
--
FROM 120.253.228.*
你说的当然没错
但 seablue 知道我为什么要问
【 在 cmkylin 的大作中提到: 】
: 哥...你是不是没实际做过开发?
: c++用stl,用类自己写那是学生上课干的事儿。
--
FROM 120.253.228.*
数据结构和语言无关,如果数据结构会了,
那么看一眼Python有哪些东西,应该立马就会用了。
例如看到Python的dict,就该知道这玩意儿是哈希表。
不用特意找python版数据结构再学。
【 在 easior 的大作中提到: 】
: 你说的当然没错
: 但 seablue 知道我为什么要问
:
--
FROM 114.246.239.*
数据结构和语言没关系,但数据结构的书和语言有关系
【 在 cmkylin 的大作中提到: 】
: 数据结构和语言有啥关系?
--
FROM 123.120.108.*
楼主说了接触过c++版数据结构,那我觉得没必要再学python数据结构,要学也是学python
【 在 wincss 的大作中提到: 】
: 数据结构和语言没关系,但数据结构的书和语言有关系
--
FROM 221.216.116.*
【 在 easior 的大作中提到: 】
: 接触过 C++ 版的数据结构,Python 这个比较陌生
: 考虑到 Python 本身的数据类型已经比较完善了
: 估计它的数据结构讲法侧重点可能很不一样
: ...................
用学C++的观点学python是不科学的,
python作为, 胶水语言, 需要学习的是熟练掌握python的原生库和使用。
想深入, 可以研究python的库实现, 而不是在语言应用层上再去实现什么,
尤其是, 你已经使用过c++,并能用c++数据结构的情况下。
实际上,不需要效率的情况, 使用python内置的数据结构和算法是足够的,
而需要效率的情况, 显然, 在python之上再去实现也没有什么意义,一个简单的例子,
一个python的一个语言层面的for循环, 就和c/c++的执行速度, 差着一个数量级,
你python代码写的数据结构精致优雅也无济于事。
所以, 真正的高端局, 是深入python的黑箱子, 弄懂python的实现机理, 能够无缝的扩展它,比如Cpython, 比如, 了解python对象的实现, python类型和对象的实现, python的引用计数机制,
python的垃圾回收策略, python的gil锁应用。 python的协程库实现。
--
FROM 124.126.2.*
多谢阁下的建议
关于如何封装 C/C++ 库,这些问题早就琢磨过了
从 C++ 的角度,可能会选择 Boost::python
关于我的问题,换个问法就是:
Python 的数据结构和算法该怎么安排内容?
比如先学一下类的定义方法,
然后把某个典型(或眼下热门)的数据结构的实现做一遍?
还是照着 C++ 的方式,挨个介绍线性表、栈等数据结构的 Python 实现?
【 在 poggy 的大作中提到: 】
: 用学C++的观点学python是不科学的,
: python作为, 胶水语言, 需要学习的是熟练掌握python的原生库和使用。
: 想深入, 可以研究python的库实现, 而不是在语言应用层上再去实现什么,
: ...................
--
FROM 120.253.228.*
【 在 easior 的大作中提到: 】
: 多谢阁下的建议
: 关于如何封装 C/C++ 库,这些问题早就琢磨过了
: 从 C++ 的角度,可能会选择 Boost::python
: ...................
你还在想怎么打磨零部件,
说明你还是没明白, 胶水语言是什么意思
你学习的重点是, 怎么找到需要的零部件, 这些零部件怎么快速粘合到一起。
--
FROM 124.126.2.*