Python有三种基本序列类型:list, tuple 和 range 对象。 序列可分为可变类型和不可变类型。tuple是不可变类型。
• 关于对象的复制的问题 • 列表统计,排序,append与extend的不同
Python没有其他编程语言中的数组类型,列表(list)其实就有点类似数组,但是不同于其他编程语言中的数组一般只能是存放相同类型的数据(c语言数组都是定义了存放某类数据的),Python的列表类型可以存储任意类型,可以相同也可以不同。 另外,列表list也可以实现多维数组的结构,就是在列表里面嵌套列表。
通过索引获取列表元素,获取列表元素的方式如下:start, Python列表获取元素的方式类似数组获取元素的方式,不同的是,Python支持负数索引,可以表示列表最后的元素(这个描述感觉不准) • 正数索引值,索引从0开始。从列表的开头开始获取元素。 • 负数索引值,从列表最后开始获取元素,-1 代表最后1个元素,-2 代表最后第2个元素,其他以此类推。
>>> # name_list 存放了26个字母 >>> name_list = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] >>> name_list[0:1] ['a'] >>> name_list[0:5] ['a', 'b', 'c', 'd', 'e'] >>> name_list[:5] ['a', 'b', 'c', 'd', 'e'] >>> name_list[5:10] ['f', 'g', 'h', 'i', 'j'] >>> name_list[5:] ['f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] >>> name_list[:] ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] >>> name_list[0:10:2] ['a', 'c', 'e', 'g', 'i'] # 负数索引 >>> name_list[-1:] ['z'] >>> name_list[-2:] ['y', 'z'] >>> name_list[-5:-2] ['v', 'w', 'x'] >>>如果列表内所有的数据全部是数值类型的话,可以使用Python内置函数max()求最大值,min()求最小值,sum()统计总和,进行一些简单的数据统计操作。
>>> num_list = [12,4,102,200,38,1,99,10,500] >>> max(num_list) 500 >>> min(num_list) 1 >>> sum(num_list) 966如果列表内的全部数据都是字符或字符串的话,也可以使用max()和min(),但是不能使用sum()。 这里max() 与 min() 函数是根据字符的Unicode码值的大小来进行比较的,并且是按单个字符进行比较,比如 字符 ‘x’ 就比 ‘abcdf’ 大,只有当第一个字符相等时才会接着比较第二个字符。
>>> name_list = ['a','b',"c","ab"] >>> max(name_list) 'c' >>> min(name_list) 'a' >>> name_list = ['a','b',"c","db"] >>> max(name_list) 'db' >>> name_list = ["agk","fkd","x"] >>> max(name_list) 'x' >>> min(name_list) 'agk' >>> max(name_list) 'yyy' >>> name_list = ["abc","dfg","uxh","yab","yxa","xas"] >>> max(name_list) 'yxa' >>> name_list = ["a","ab","abc"] >>> max(name_list) 'abc' >>> name_list = ["a","ab","aacdefg"] >>> min(name_list) 'a' >>> max(name_list) 'ab' >>> sum(name_list) Traceback (most recent call last): File "<pyshell#25>", line 1, in <module> sum(name_list) TypeError: unsupported operand type(s) for +: 'int' and 'str'本节参考资料: Python3.7官方教程-内置函数sorted Python3.7官方教程-排序指南
浅层复制和深层复制之间的区别仅与复合对象 (即包含其他对象的对象,如列表或类的实例) 相关: • 一个 浅层复制 会构造一个新的复合对象,然后(在可能的范围内)将原对象中找到的 引用 插入其中。 • 一个 深层复制 会构造一个新的复合对象,然后递归地将原始对象中所找到的对象的 副本 插入。 标准库中的Copy模块: copy.copy(x) 返回 x 的浅层复制。 copy.deepcopy(x[, memo]) 返回 x 的深层复制。
制作字典的浅层复制可以使用 dict.copy() 方法,而制作列表的浅层复制可以通过赋值整个列表的切片完成,例如,copied_list = original_list[:]。
暂时就这个,后面看看有啥具体疑惑不明的在补一下笔记。
本节内容参考资料: Python3.7官方教程-copy模块
来我的小店逛逛吧休闲内衣家居服