Python列表逆序排列的3种方式小结
本文总结了Python中实现列表逆序排列的三种常用方法:list.reverse()、切片操作以及reversed()函数。通过对比它们在内存占用、是否修改原列表及执行效率上的差异,帮助开发者根据具体需求(如是否需要保留原数据、最终结果类型等)选择最合适的方案。
Python列表逆序排列
第一种方法 list.reverse()
该方法会直接将列表中的元素顺序颠倒,无需创建新的副本存储结果。
优点:1. 节省内存空间。
缺点:1. 直接修改了源数据,若后续仍需使用原始列表顺序则需再次倒序,造成多余操作。
mylist = [1, 2, 3, 4, 5]
print(mylist)
mylist.reverse()
print(mylist)第二种方法 使用切片
mylis[start: end:step]上述语法表示从 mylist 的第 start 个元素(索引从 0 开始)取到第 end 个元素(不包含 end),步长为 step(默认为 1)。
x = mylist[1:3]
print(x)
y = mylist[1:4:2]
print(y)1. start、end 和 step 均为可选参数。
2. 当使用 mylist[:] 时,将返回 mylist 的一个副本。
3. 若省略 start 和 end,仅指定 step,则从索引 0 开始以 step 为单位进行遍历。
q = mylist[::2]
print(q)1. 当 start、end 或 step 为负数时,表示从反向方向遍历列表。
2. 此时索引并非从零开始,而是从 -1 开始计数。
w = mylist[-1:-3:1]
print(w)
e = mylist[-3:-1:1]
print(e)
r = mylist[-1:-3:-1]
print(r)
t = mylist[-1:-3:-2]
print(t)因此,使用 mylist[::-1] 即可实现列表倒序。
1. 此方式会创建副本保存列表所有元素,占用更多存储空间。
2. 虽然可读性略逊于第一种方法,但不会改变原列表的内容。
第三种 使用reversed()方法
reversed 方法将逆序结果封装为迭代器,这种方式既不修改原列表,也不创建完整副本,仅增加迭代器对象的空间开销,相对高效。
若需访问所有元素,可通过循环遍历。
for i in reversed(mylist):
print(i)
print(mylist)若需转换为列表类型。
r = list(reversed(mylist))
print(r)怎么 选择使用
1. 显然,第一种是首选。毕竟高效、易读。如果不要保留原列表的数据,使用这种方式显然更有优势,否则选择后两种
2. 如果最后需要得到列表类型的结果,那么选第二种方式比较合理。否则,第三种方式更高效。
python列表技巧(倒序)
a = [0,1,2,3,4,5,6,7,8,9]b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象
b = a[1:3] 那么,b的内容是 [1,2]
- 当i缺省时,默认为0,即 a[:3]相当于 a[0:3]
- 当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
- 当i,j都缺省时,a[:]就相当于完整复制一份a了
b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.
所以a[i:j:1]相当于a[i:j]
当s<0时,i缺省时,默认为-1. j缺省时,默认为-len(a)-1
所以a[::-1]相当于 a[-1:-len(a)-1:-1],也就是从最后一个元素到第一个元素复制一遍。也就相当于是将列表倒叙了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













