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() 这样进行修改的方法,其他方法都与列表一样
字典中的键必须是唯一的同时不可变的,值则没有限制
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
访问元组访问元组的方式与列表是一致的。
元组的元素可以直接赋值给多个变量,但变量数必须与元素数量一致。
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
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]} 删除字典