首页 > 代码库 > 04-python的列表操作
04-python的列表操作
python中列表的使用最多, 常用的方法有:
append(value)
extend(L) 添加指定列表的所有元素
insert(index, value) 插入
remove(value)
pop(index) 不指定删除最后一个,
clear() 清空
count(value) 统计有多少个
sort() 排序
reverse() 到序
copy() 潜复制
其他的:
1, 列表推导式
列表推到式, 从序列简单的创建列表
将操作应用于序列的每个元素, 将其结果作为新的列表元素
需要用 [], 元组用()
每个列表推到是都在for之后创建一个表达式, 然后有0-多个 for或if子句, 返回结果
是一个根据表达式从背后的for和if上下文环境中生成的列表, 如果希望推到出一个元组, 必须用口号
# ×3 获取一个新的列表 vec = [2, 4, 6] new_vec = [3 * x for x in vec] print(new_vec) # 获取一个map dict = [(x, x**2) for x in vec] print(dict) # 对序列中元素租个调用 fruits = [‘banana‘, ‘apple‘, ‘oragin‘] new_fruits = [fruit.upper() for fruit in fruits] print(new_fruits) # 使用if if_vec = [3 * x for x in vec if x > 3] print(if_vec) # 2个列表混搭的 vec2 = [4, 6, -1] lista = [x * y for x in vec for y in vec2] listb = [vec[i] * vec2[i] for i in range(len(vec))] print(lista) print(listb)
字典推导
# 字典 推导 new_dict = {x + 10: x**2 + 10 for x in range(10)} print(new_dict)
2, 嵌套列表的转换
比如, 我想把一个 3 * 4 的列表转换为 4 * 3 的列表
matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ] new_matrix = [[row[i] for row in matrix] for i in range(4)] print(new_matrix) # 上面的相当于 matrix_1 = [] for i in range(4): matrix_1.append([row[i] for row in matrix]) print(matrix_1) # 获取进一步改写 matrix_2 = [] for i in range(4): ineer = [] for row in matrix: ineer.append(row[i]) print(row[i], end=‘, ‘) print(‘---‘, row) print(matrix_2) for row in matrix: print(row)
3, 使用enumerate进行遍历
# 字典 推导 new_dict = {x + 10: x**2 + 10 for x in range(10)} print(new_dict) # 字典的遍历 for k, v in new_dict.items(): print(k, v) # 返回索引的, dict返回key for i, v in enumerate(new_dict): print(i, v) # 遍历2个货更多的序列, 使用 zip(), 去最短的序列 questions = [‘name‘, ‘quest‘, ‘favorite‘] answers = [‘lancelot‘, ‘the‘, ‘blue‘, ‘abc‘] for q, a in zip(questions, answers): print(q, a) # 反向遍历集合 for q in reversed(questions): print(q)
enumerate返回的是一个迭代器对象, 里面包含一个yield, 可以返回函数的运行状态
我们也可以使用yield来实现一个简单的迭代器
04-python的列表操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。