Python编程基础概念
参考:北京尚学堂·百战程序员
序列
序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放
多个值的连续的内存空间。比如一个整数序列[10,20,30,40]可以这样示意表示
由于 Python3 中一切皆对象,在内存中实际是按照如下方式存储的:
从图示中,我们可以看出序列中存储的是整数对象的地址,而不是整数对象的值。python
中常用的序列结构有:
字符串、列表、元组、字典、集合
列表介绍
列表:用于存储任意数目、任意类型的数据集合。
列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表定义的标准语法格式:
a = [10,20,30,40]
其中,10,20,30,40 这些称为:列表 a 的元素。
列表中的元素可以各不相同,可以是任意类型。比如:
a = [10,20,‘abc’, True]
列表对象的常用方法汇总如下,方便大家学习和查阅
Python 的列表大小可变,根据需要随时增加或缩小
列表的创建
- 基本语法[]创建
- list ()创建
使用 list()可以将任何可迭代的数 - range ()创建整数列表
- 推导式生成列表
列表元素的增加和删除
当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这
个特点涉及列表元素的大量移动,效率较低。除非必要,我们一般只在列表的尾部添加元素
或删除元素,这会大大提高列表的操作效率
列表元素增加
- append()方法
- +运算符操作
并不是真正的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次
复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用。 - extend ()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象 - insert ()插入元素
使用 insert ()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后
面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种
移动的函数还有:remove () 、pop () 、del () ,它们在删除非尾部元素时也会发生操作位置后
面元素的移动 - 乘法扩展
列表元素删除
- del 删除
删除列表指定位置的元素 - pop ()方法
pop ()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素 - remove ()方法
删除首次出现的指定元素,若不存在该元素抛出异常。
列表元素访问和计数
- 通过索引直接访问元素
我们可以通过索引直接访问元素。索引的区间在[0, 列表长度-1]这个范围。超过这个范围则
会抛出异常 - index ()获得指定元素在列表中首次出现的索引
index ()可以获取指定元素首次出现的索引位置。语法是:index(value, [start, [end]]) 。其中,
start 和 end 指定了搜索的范围 - count()获得指定元素在列表中出现的次数
count()可以返回指定元素在列表中出现的次数。 - len()返回列表长度
len()返回列表长度,即列表中包含元素的个数 - 成员资格判断
判断列表中是否存在指定的元素,我们可以使用 count()方法,返回 0 则表示不存在,返回
大于 0 则表示存在。但是,一般我们会使用更加简洁的 in 关键字来判断,直接返回 True
或 False - 切片操作
- 列表遍历
- 复制列表所有的元素到新列表对象
列表排序
- 修改原列表,不建新列表的排序
- 建新列表的排序
- reversed ()返回迭代器
内置函数 reversed()也支持进行逆序排列,与列表对象 reverse()方法不同的是,内置函数
reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象
多维列表
二维列表
元组 tuple
列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的
元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如
下操作:
- 索引访问
- 切片操作
- 连接操作
- 成员关系操作
- 比较运算操作
- 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等