列表
开篇讲了一些语言的基础,今天开始记录一些学习中的其他python的知识。
列表 由一系列按
特定顺序
排列的元素组成。用方括号([])来表示列表,元素用逗号隔开。
可以将任何东西加入列表中,其中的元素之间可以没有任何关系。命名的话最好用复数来命名
访问元素
- 因为是顺序的,所以可以从索引获取元素,从0 开始而不是1.
- 如果返回最后一个元素索引是-1, 这样的约定可以让我们使用负数来从最后开始去索引列表中的元素。
- 可以使用其他变量一样使用列表中的各个值。
增删改查
- 修改列表元素直接使用索引赋值就可以修改指定索引的元素值。
- .append() 在列表末尾增加元素,象使用栈一样,起初初始化一个空列表,然后append数据。
- .insert()在列表任何位置添加新元素,需要指定元素索引和值。指定索引,在索引位置插入新值,其他元素顺序向后增加+1索引值。
- 删除列表
+ del 需要提供元素在列表的索引,可以删除任何位置元素,删除后并无返回,元素是被直接删除,你将无法访问。
+ pop() 将元素从列表中删除,元素就不再列表中了,并接着使用它的值。方法可删除列表末尾的元素,并让你使用pop出来的元素,更象一个栈来使用。
+ 加入你需要pop出指定位置的元素,需要提供参数索引值。
+ 有时我们并不知道索引,知道元素值,可以使用remove()方法来删除,此方法也可以获取到删除的元素并使用它。
+ 方法remove()只删除第一个指定的值,如果存在从夫的值,需要使用循环来判断是否删除了所有的值。
组织列表
创建列表中,元素的排列顺序常常无法预测。
- sort()
永久性
排序,如果想反向排序,需要提供参数 reverse=True. e.g. cars.sort(reverse=True) - sorted()
临时性
排序,并不影响原有顺序。反向,提供参数 reverse=True - reverse()
永久性
反转列表,并不是按照什么规定顺序排序,而就是将原有顺序,反转,如果想变为原有顺序,直接在反转一次。 - len() 快速或许列表长度,列表元素计算长度是从1 开始计算。
避免使用中使用索引报错,因为从0开始记数。
+ 索引-1 是你想访问的最后一个元素
+ -1 索引也是最后一个元素。
+ pop() 删除并返回最后一个元素。
发生索引错误,可以将列表或者长度打印出来,方便查找错误原因。
操作列表
- 遍历 使用 for 循环
+for item in items:
记得后边的冒号 表示这个for循环开始。
循环很重要,自动化完成重复工作的常见方式之一。
Python 根据缩进来判断代码行与前一个代码行的关系。
数值列表
列表非常适合用于存储数字集合。
- range() 轻松生成一系列的数字。
+ for value in range(1,5): 知识打印了1~4,语义理解应该是从第一个值开始数,并在到达指定的第二个值后停止并不包含第二个值。
要创建数字列表,可以使用list()将range()的结果直接转换为列表。
+ number = list(range(1,6))
range 也可以指定步长(就是一个数到另一个数的间隔)
+ range(2,11,2) # 从2 到 11 ,每次间隔是2.
对数字列表进行统计
- min() 最小数
- max() 最大数
- sum() 求和
列表解析 将for循环和创建新元素的代码合并成一行,自动附加新元素。
- squares = [value**2 for value in range(1,11)]
- 语法:
+ 首先指定一个描述列表名squares
+ 左方括号,定义一个表达式,用于生成需要存储到列表的值。 value**2
+ for循环,用于给表达式提供值
+ 右方括号
+这个for语句没有冒号结尾
使用列表的一部分
python可以处理列表的部分数据--切片
要创建切片,要指定使用的第一个元素和最后一个元素的索引。到第二个截至,并不包含第二个参数的元素。
- players[0:3] 输出也是一个列表,是列表的子集。如果没有指定第一个索引,将自动从列表开头开始。players[:3]
- 要切片终止于末尾,也可以省略第二个索引。 players[1:]
- 索引要注意负数表示从后往前的索引。
如果要遍历列表的部分元素,可以在for中使用切片列表。
复制列表,可创建一个包含整个列表的切片,可以省略起始索引和终止索引 [:],从列表中提取的切片,创建了列表的副本,将副本存储到变量中。
- 如果只是拿一个列表赋值给另一个列表,实际上只是让新变量也关联到赋值列表上。因此两个变量都指向了同一个列表。
元组###
列表非常适合用于存储在程序运行期间可能变化的数据集。
列表是可以修改的。
有时我们需要一系列不可修改的元素,元组
就可以满足需求。
- 和列表很多相似的地方。
- 使用圆括号创建。
- 使用索引访问其元素。
- 试图修改元组的操作是被禁止的,不能给元组的元素赋值。给元组变量赋值是合法的。
- 使用for循环遍历元组的元素
虽然不能修改元组的元素,但可以给存储元组的变量赋值。应该理解为重新定义一个新的元组。
元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。
编码规范###
- 用Tab,4个空格来排版
- 一行的代码最好不要超过80字符。注释的行长度不要超过72
- 可以使用空行来组织程序文件
If condition == ‘abc’:
pause
elif:
pause
else:
pause
可以包含多了elif模块,也可以省略else模块。
Python中检查是否相等时是区分大小写的。所以都可以转换为小写再进行比较 .lower()
判断特定值是否包含在某个列表中。if item in items:
判断特定值不包含在某个列表中。 if item not in items:
判断列表是否为空, if listname: python将在列表至少包含一个元素时返回True,否则返回False
这里整理了列表的相关技术点,有什么不对或者疑惑的地方欢迎留言。