Python 3 入门,看这篇就够了 (7)

for ... in ... 用于遍历列表元素

[1, 2, 3] + [3, 4, 5] # [1, 2, 3, 3, 4, 5] [1, 2, 3] * 2 # [1, 2, 3, 1, 2, 3] 3 in [1, 2, 3] # True for x in [1, 2, 3]: print(x) # 1 2 3 列表函数

len(list) 列表元素个数

max(list) 列表元素中的最大值

min(list) 列表元素中的最小值

list(seq) 将元组转换为列表

li = [0, 1, 5] max(li) # 5 len(li) # 3

注: 对列表使用 max/min 函数,2.x 中对元素值类型无要求,3.x 则要求元素值类型必须一致。

列表方法

list.append(obj)

在列表末尾添加新的对象

list.count(obj)

返回元素在列表中出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值

list.index(obj)

返回查找对象的索引位置,如果没有找到对象则抛出异常

list.insert(index, obj)

将指定对象插入列表的指定位置

list.pop([index=-1]])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向排序列表的元素

list.sort(cmp=None, key=None, reverse=False)

对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数

list.clear()

清空列表
还可以使用 del list[:]、li = [] 等方式实现

list.copy()

复制列表
默认使用等号赋值给另一个变量,实际上是引用列表变量。如果要实现

列表推导式

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。

将列表中每个数值乘三,获得一个新的列表:

vec = [2, 4, 6] [(x, x**2) for x in vec] # [(2, 4), (4, 16), (6, 36)]

对序列里每一个元素逐个调用某方法:

freshfruit = [' banana', ' loganberry ', 'passion fruit '] [weapon.strip() for weapon in freshfruit] # ['banana', 'loganberry', 'passion fruit']

用 if 子句作为过滤器:

vec = [2, 4, 6] [3*x for x in vec if x > 3] # [12, 18] vec1 = [2, 4, 6] vec2 = [4, 3, -9] [x*y for x in vec1 for y in vec2] # [8, 6, -18, 16, 12, -36, 24, 18, -54] [vec1[i]*vec2[i] for i in range(len(vec1))] # [8, 12, -54]

列表嵌套解析:

matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] new_matrix = [[row[i] for row in matrix] for i in range(len(matrix[0]))] print(new_matrix) # [[1, 4, 7], [2, 5, 8], [3, 6, 9]] 元组(tuple)

元组与列表类似,不同之处在于元组的元素不能修改

元组使用小括号,列表使用方括号

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可

没有 append(),insert() 这样进行修改的方法,其他方法都与列表一样

字典中的键必须是唯一的同时不可变的,值则没有限制

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

访问元组

访问元组的方式与列表是一致的。
元组的元素可以直接赋值给多个变量,但变量数必须与元素数量一致。

a, b, c = (1, 2, 3) print(a, b, c) 组合元组

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

tup1 = (12, 34.56); tup2 = ('abc', 'xyz') tup3 = tup1 + tup2; print (tup3) # (12, 34.56, 'abc', 'xyz') 删除元组

元组中的元素值是不允许删除的,但我们可以使用 del 语句来删除整个元组

元组函数

len(tuple) 元组元素个数

max(tuple) 元组元素中的最大值

min(tuple) 元组元素中的最小值

tuple(tuple) 将列表转换为元组

元组推导式 t = 1, 2, 3 print(t) # (1, 2, 3) u = t, (3, 4, 5) print(u) # ((1, 2, 3), (3, 4, 5)) 字典(dict)

字典是另一种可变容器模型,可存储任意类型对象

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

键必须是唯一的,但值则不必

值可以是任意数据类型

键必须是不可变的,例如:数字、字符串、元组可以,但列表就不行

如果用字典里没有的键访问数据,会报错

字典的元素没有顺序,不能通过下标引用元素,通过键来引用

字典内部存放的顺序和 key 放入的顺序是没有关系的

格式如下:

d = {key1 : value1, key2 : value2 } 访问字典 dis = {'a': 1, 'b': [1, 2, 3]} print(dis['b'][2]) 修改字典 dis = {'a': 1, 'b': [1, 2, 3], 9: {'name': 'hello'}} dis[9]['name'] = 999 print(dis) # {'a': 1, 9: {'name': 999}, 'b': [1, 2, 3]} 删除字典

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxsjp.html