序列操作技巧
## zip函数 将序列压缩成一个可迭代对象(也能用next函数和方法$v$) ### 格式 ```python zip(iterable, ...) ``` ### 合并序列 ```python # 返回一个zip对象,在for循环中相当于[(x1, y1, z1), ...](本身返回的不是这个) xyz = zip([x1, x2, x3], [y1, y2, y3], [z1, z2, z3]) for x, y, z in xyz: print(x, y, z) ``` ### 字典键值互换 ```python old = {'a': 1, 'b': 2, 'c': 3} # new:{1:'a', 2:'b', 3:'c'} new = dict(zip(old.values(), old.keys())) ``` ### 解压 ```python # 注意用'*'解压后就不能再用'*'解压了 it = zip(old1, old2) # 直接解压(相当于把迭代器的所有内容返回) print(*it) # new1, new2的内容与old1,old2相同,类型为元组 new1, new2 = zip(*it) ``` ## map函数 对序列的每一项进行某个操作,返回一个新的序列 ### 格式 ```python # 注意function是函数名,不用带括号 map(function, iterable, ...) ``` ### 将输入的字符串转为数字列表 ```python # 打蓝桥杯那会天天用 map(int, input().split()) ``` ### 通过lambda函数操作多个序列 ```python # 返回一个序列,里面是数组[(1, 4), (2, 5), (3, 6)] map(lambda x, y: (x, y), [1, 2, 3], [4, 5, 6]) ``` ### 不传入function时,有点像zip函数 ```python # 返回一个序列,里面是数组[(1, 4), (2, 5), (3, 6)] map(None, [1, 2, 3], [4, 5, 6]) ``` ### 使用自定义函数 ```python def fun(x): # 对x进行操作 # 返回一个新的x return new_x ```
创建时间:2023-05-20
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链