1、元组Tuple和列表Array
(1)元组是不可变的, 而列表是可变的。元组是不可变对象,对象一旦生成,它的值将不能更改;列表是可变对象,对象生成后,可以对其元素进行更改、添加、删除、清空、排序等操作。
(2)元组通常由不同的数据,而列表是相同类型的数据队列。元组表示的是结构,而列表表示的是顺序。举个例子来讲:当你想记录棋盘上一个子的坐标时, 应该使用元组; 当你想记录棋盘上所有的子的坐标(一系列相同的数据)时,应该使用列表。
point = (1, 2)
points = [(1, 2), (1, 3), (4, 5)]
(3)可哈希对象就是能映射成内存地址的对象。在Python基本数据类型中,只有列表、字典和可变集合是不可哈希的。说元组是可哈希也不对,如果元组中某个元素是列表、字典或可变集合,那么这个元组也是不可哈希的。可哈希对象和不可哈希对象的区别体现在:可哈希对象可以作为字典的键和集合的元素,不可哈希对象则不可以。
a=(1,2) 元组
b=[4,5] 列表
c = {a: 'start point'} # OK
c = {b: 'end point'} # Error
(4)列表的append “+”运算符重载 array=array+[i]
2、分解,代码模块化、抽象--函数
--分解为模块
--抽象,忽略细节
--创建原语的思考方式
3、递归
--元问题解决方法
--将大问题分解为相同解法的小问题
--递归终止条件
判断字符串是否为回文问题:
def isPalindrome(s): if len(s)<=1:return True else:return s[0]==s[-1] and isPalindrome(s[1:-1])