python自学笔记
python序列
- python序列类似于数组,但功能更强大。
- 常用序列有:列表、元组、字符串、字典、集合以及range等对象。
- 列表、元组、字符串支持双向索引,第一个元素下标为0,第二个元素下标为1,以此类推,最后一个元素小标为-1,倒数第二个元素下标为-2,
列表
- 列表是python中内置有序、可变序列,列表的所有元素放在一对中括号
[]中,并用逗号分隔开 - 当列表元素增加或删除时,列表对象自动进行 扩展或收缩内存,元素之间没有缝隙;
- python中一个列表中的数据类型可以各不相同,可以同时分别为整数、实数字符串等基本类型,甚至是列表、元组、字典、集合以及其他自定义类型对象。
[10, 20, 30, 40]
[‘crunchy frog’, ‘ram bladder’, ‘lark vomit’]
[‘spam’, 2.0, 5, [10, 20]]
[[‘file1’, 200,7], [‘file2’, 260,9]]
切片操作
- 切片适用于列表、元组、字符串、range对象等类型,但作用于列表时功能最强大。
- 使用切片截取列表中任何成分,可得到一个新的列表
- 也可以通过切片来修改和删除列表中的部分元素,甚至为列表增加元素
- 切片使用2个冒号分隔的3个数字来完成:
第一个数字表示切片开始位置
第二个数字表示切片截止(但不包含)位置(默认为列表长度)
第三个数字表示切片的步长(默认为1),当步长省略时可顺便省略最后一个冒号 - 切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表,代码具有更强的健壮性。
使用del与切片结合来删除列表元素
切片返回的是列表元素的浅复制
所谓浅复制,是指生成一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。之所以称为浅拷贝,是它仅仅只拷贝了一层,在a中有一个嵌套的list,如果我们修改了它,情况就不一样了。