全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
2129 0
2014-09-22
Part 1:基本数据结构

1.包含、真包含、小于等于、小于、增加、复制、加法、乘法 —— <、=、+、*

2.一元映射、多元映射、固定元、不固定元、开放变量、不开放变量、遍历、搜索、收集、分散、有序、没序、完整、不完整、构成元素一次性添加、非一次性添加、数列的有序、非数列的有序、构成元可变、构成元不可变、构成元可删掉、构成元不可删掉、可以用另外一种结构表示、不可以用另外一种结构表示、可以散列的、不可以散列的、可以调用一个内置函数的、不可以调用一个内置函数的、等等都是物质世界同精神世界的交谈,可以用二维表将基本数据结构分开。

3.元组(tuple)、列表、字典、集合,前三个有序,后一个无需有序,符号表示(元组) [列表] {字典、集合},其中元组、列表是数序的,字典不是数序列的。元组构成元不可变,后三个可变。第一个是可散列的,后三个不是可散列的,散列之后就不是它们自己了。列表、字典是二元组,元组、集合是n元组。能否可散列是针对集合来讲,因为集合有特性确定性,这样子设计保证了集合的一个特性,而字典可以加元素进去不确定,所以不放进集合。感觉可散列的意思是同一个变量在允许计算操作的范围内规格不会改变,这样才能被称为可散列。规格就是它的构成元的数量和内容。

4.前向组合、后向组合,等等,可用函数的方式处理各种数据结构,同一种类型的,不同一种类型的((),{},[]),对基本数据结构能够进行哪些操作是怎么决定,应该是又数据结构自己的定义决定的。元组、列表、字典、集合允许的初始化不同,元组、列表必须一次性初始化好规格,字典、集合可以一个一个增加,因它们之间有序、没序之间的差别所以增加的方式不同,有序的需要同时添加键值,没序的增加任何一个值都是等价的因此用add、remove没分别的加减构成元。从字符串、元组、列表、字典、集合约束要求程度在降低同时自由度在增加。它们改变的元组的方式不同,完成初赋值,元组构成元不能更改,字符串、列表、字典、集合构成元可以更改,可以逐一更改,也可以连续几个可以更改。虽然字符串是不可变组但是字符串是有序组,这很简单,因为可不可变与有不有序可以无关,而数据结构想要具有代表现实事物最大的可能性,所以在定制数据结构是就令它们无关了,现实的对象是不一定的,所以当你听到傲慢的程序员在讲“A和B有管么?”,你心里要清楚谦卑总是没错的,那原初的思想来自设计者,理解者无需傲慢。再推一层,设计者的思想亦是来自大自然,亦不必傲慢。如何消灭一个数据结构,重新赋值,原先的内容不再存在。要想数据结构产生嵌套,首先需要它的定义允许如此。对于任何数据结构的组成员可以在赋值之后,进行修改嵌套,嵌套的内容允许多层重叠直至不可变元未知,注意每个修改阶段要求数据结构的内容必须落地至不可变元,也就是数据结构必须是定义好的。

5.针对某一种数据结构的操作最最少需要几个就足够?总结4,赋初值、修改、消灭即够。

6.一种挺重要的观点,一种data type背后其实就是一种基于基本数据结构的算法。同时,所谓基本数据结构其实是很相对的概念。习以为常的你认为是建立在基本数据结构之上的结构,其实是可以成为“比它基本”的构成结构。这在计算机语言中的体现和我看若干分析工具得到的想法是一致的,从任何一个点出发都能提纲掣领成一个树形逻辑结构。

Part 2:面向对象编程方法

1.用类、对象、函数、方法这些东西创建自己的需要的结构。使用这些东西的缘故在于,这些东西是你直接面对一个现实任务
时候,直接同人类的语言描述接口,基本的数据结构像基本的音调,你的程序就是乐章,因为是语言嘛同声波描述十分合适。编程的过程就如同作曲的过程,因为真正的程序运行起来时,像极了歌曲,在时间里进行。有一些作曲者一开始的目的只是想表达自己的心情,到后来他会更关注他的作品对于听者身体的印象,有些曲子可以让人的神经节放松,有些可以带给人温暖。
这时候就能类比地明白编程的一个合适的目标了。

2.如何确定是自己写一个方法完成一种任务,还是调用可用的但是自己不知道的一种方法完成一个任务?会担心自己写会花掉
比较多时间,和利用别人写好的会不可靠。利用6的知识,那种方式更适合于实现1中的目标,我们就使用那种方式。

3.我自己认同面向对象的编程风格吗?比如要简单地做个矩形相关的性质专门的去建立一些类,然后每种方法又都很简单那样,我觉得很蠢啊,没有必要。当问题复杂到怎样,我就觉得值得去建立一些类了呢?我应该蛮认同的,观察我自己写帖子的风格,有一个想法就会及时的主要框架记下来,然后丰富完成,这样的顺序。刚定义类的时候就只是一个简单的描述。曾经一位小伙伴曾对我表示对企业级产品重重补丁的严重失望,我觉着有个原则就是在有时间限定的前提之下,如果获得高阶知识的
时+计划开发时间少于原型+修订时间少,其实很简单,求时间少效率高收益高的方式,同时不要对任何一种方式保持盲目或
者排斥。[收集一种函数+修改器优于计划开发的例子]使用对象的好处在于对象可以作为形参传递。同时也明白了自然常数
pi是如何被存储在Python中的。这样子看的话完全可以用面向对象的方法把学过的数学尤其是线性代数都实现出来的,成一个
完整的计算体系,这些事情别人已经做过了,写成了numpy,scipy。同时这件事情比较有意义的是使用者都熟悉这些对象名的含义。

4.发现这里很关键的一个点是面向对象编程的各种参数的传递有讲究。可以修改一个对象的方式会有很多,但是我觉得不够有
一般性,因为你定义完一个对象,只能一个一个的实例化吗?在现实的应用中,我可能需要很类同的实例化一批对象,那怎么办?现在觉得这种方法很蠢。觉得的只要是落到“值”层面的变量、实例都可以作为参数来传递的,也可以作为返回值,那
么怎样的不可以作为参数和返回值呢?为什么会这样?在参数传递过程中有个麻烦的点,就是会产生别名,那么我们如何判断究竟哪一个名是更基本的。这里有好几个名字,类名字、实例名、参数名,而且这里还出现了一个麻烦,就是你针对类的一个实例写出的函数,可是对于非作者的阅读者,他势必需要知道这个参数名代表的实例,说它麻烦是因为它好像就是有很强的需要代码编写阅读使用者们拥有共同的知识,is this ridiculous?对象的一个属性就是个变量,值当然是可变了。如果我修改了一
个对象属性的值,并不等于修改了对象,差不多得需要重新定义啊。还是很排斥,觉得没必要事先定义个类对象嘛!在把一个很简单的事情往复杂搞。不过这种方式感觉比较适合协作,每个不同的模块交给不同的人去做,那也是很大的项目才合适这种
做法。对象只有一个。如果是复制了一个,那其实是另外一个。克隆人从值相等的角度讲是一个,而从对象的角度讲是两个。再比如,1=1,从值的角度讲是1个,从对象的角度讲是2个。往往人们的出发角度会不同,所以,三毛的数学就会不好,所以编排人家就是不对的。所以需要知道的一点是,Python认同的怎样的东西被当做对象,怎样的东西被当做值,或者是决定因素不是这个东西本身而是所处的位置。理解两种复制,浅复制和深复制:深复制之后到变成两个了,浅复制之后怎么还是一个,这个有点违反直觉啊。复制其实在强调形成新的对象。其实,这里是相对赋值来讲的,赋值的“值”包含各个层级的数据,也是包
括了值对象自己;浅复制和深复制之间的界限就是建立不同对象的范围包不包括内嵌对象。这个点其实是很深刻的复制的目的是不同,而不是相同。现在提出一个问题是,怎样的东西不被认为是个对象呢?[浅复制优于深复制的例子]就是看它是不是
类对象?他说用户定义是指客户讲的语言?object很关键的一个点在于用户定义!比如,在统计中每个样本点就可以看做本次
研究的一个对象,它们的观测有可能相同,但是它们作为2个统计对象,有统计意义。理解收获5之后,这样就让人相信对象.
属性确实不是摆设,确实可以运作。

5.



-----------------------------------------------------------------------------------------------------------------------------------------------------------
感受、预言和收获:

1.使用同样的语言有人会做很蠢的事情,有人能做很聪明的事情。
2.Python的package列表里面有超多垃圾,有人把小练习都po上去。R的package会好一点。
3.有人讲“他们只回应最后一个问题。”
4.你已经甩出了良莠不齐中的莠十万八千里了。
5.command line程序只执行本次会话内容:包括事先定义、存储、本次运算。回看3。
6.可以在windows cmd中运行python的,哈当然还有R,Lisp以及所有。
-----------------------------------------------------------------------------------------------------------------------------------------------------------
有趣的例子:

1.加密轮转。

----------------------------------------------------------------------------------------------------------------------------------------------------------
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群