有了python是不是不需要学数据结构,算法了?

回复内容:
python 的 list 是怎么回事,为什么有近乎无限大小的空间?为什么专门有一个固定长度且不能修改的数据结构 tuple 而不全用 list?list 的 insert 和 append 的费时是一样的吗?python 的 dict 是怎么回事,为什么可以用字符串数字等等东西来索引?是怎么搜索的?在 dict 中找一个元素,和在 list 里面找一个元素有什么区别?python 内置的 list, dict, set, …数据结构,你应该在什么样的场景下使用?小明家大姨开了小卖部,觉得小明是学编程的各种高大上,需要用 python 写一个找零钱的程序,输入任意整数,输出如何找零钱需要的张数最少,小明应该如何写?
忘记从哪里听过这句话了,个人觉得很适合回答你这个问题:“虽然当下大部分流行的高级语言都自带了对常用数据结构的支持,而且多半你无法给出更加优秀的实现,但是继续学习数据结构的动力在于:它让你学会选择一个正确且合适的数据结构去解决一个具体的问题。”尤其是python这样的语言,built-in的这些数据结构:list, dict, set…似乎是万能的(的确,有些时候确实是万能的)。但如果你了解它们背后的具体实现,就会发现,看似完美的数据结构,却未必是合适之选。比如内存空间惜“字”如金,主要目的是顺序存取,而完全不需要动态扩展的情况下,list就没有传统的array合适,具体的原因可以去了解一下list的实现原理。推荐一本书吧:《data structures and algorithms using python》,网上可以下载到高清的pdf。书中除了讲述了几种常用数据结构栈、队列、二叉树等的python实现,特别值得推荐的是,还对python的几个built-in数据结构的实现进行了具体的分析。相信会有帮助。唯一不足的是,只有英文版的,耐心读一下吧,会有一种豁然开朗的感觉。+++++++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++补充:这本书后面部分的样例代码有点混乱,混杂了python 2.x 和 python 3.x ,需要留意区分一下。附上一个下载链接吧:data structures and algorithms using python.pdf_免费高速下载
python程序员学习路线图 python+ 数据结构和算法 + linux + 软件工程 + web开发 + git版本控制+ 沟通技巧等等。
当然不是。这么明显的问题还用问吗?
python是种语言。数据结构和算法教你如何高效的使用各种语言。所以如果想高效使用python,是需要学算法和数据结构。

Posted in 未分类

发表评论