百度seo网站优化 网络服务,福州市工程造价信息网,自豪的使用WordPress,wordpress 注册连接python数组的反转可以有好几种方式#xff0c;基于python语言的强大表现能力和丰富的特性#xff0c;总结以下几种。
首先给定一个基本数组: d [1, 2, 3, 4, 5, 6]
1. reversed函数
reversed 是python的内建函数#xff0c;会将原数组进行反转(但不影响原数组本身的序列…python数组的反转可以有好几种方式基于python语言的强大表现能力和丰富的特性总结以下几种。
首先给定一个基本数组: d [1, 2, 3, 4, 5, 6]
1. reversed函数
reversed 是python的内建函数会将原数组进行反转(但不影响原数组本身的序列)生成一个新的迭代器然后你再将其具化为数组。
In [5]: new_d reversed(d)In [6]: list(new_d)
Out[6]: [6, 5, 4, 3, 2, 1]2. reverse函数
该函数是数组本身支持的一个功能它对原数组本身进行修改反转执行完该操作后原数组的顺序发生逆变。
In [13]: d.reverse()In [14]: d
Out[14]: [6, 5, 4, 3, 2, 1]3. 切片
通过切片的方式去生成一个新的数组原数组本身保持不变。
In [20]: dd d[::-1]In [21]: dd
Out[21]: [6, 5, 4, 3, 2, 1]4. 自己实现
这种方式在于有些算法要求需要自己实现不借助语言本身提供的便捷函数。
4.1 原地交换
这种方式在于基于数组本身修改利用交换原则原地交换数组各元素。
def reverse(d: list):d_len len(d)half_d d_len // 2for i in range(half_d):d[i], d[d_len - i - 1] d[d_len - i - 1], d[i]In [27]: reverse(d)In [28]: d
Out[28]: [6, 5, 4, 3, 2, 1]4.2 倒序遍历
def reverse_1(d: list):d_len len(d)result []for i in range(d_len - 1, -1, -1):result.append(d[i])return resultIn [34]: res reverse_1(d)In [35]: res
Out[35]: [6, 5, 4, 3, 2, 1]4.3 利用栈的LIFO
其实python的数组也是LIFO的数据类型这里面压栈的步骤省略出栈满足我们的要求 - 即从数组尾端出栈即可实现倒序弹出。
def stack_pop(d: list):while d:yield d.pop()In [37]: d [1, 2, 3, 4, 5, 6]In [38]: list(stack_pop(d))
Out[38]: [6, 5, 4, 3, 2, 1]以上就是python的几种数组反转的方式希望对需要的人有帮助。