-
2021-03-25 12:56:06
方法一: 通过切片来实现列表倒序
list =[1,2,3,4,5,6] list1=list[::-1] print (list1)
方法二: 通过reverse() 函数用于反向列表中元素
aList = [123, 'xyz', 'zara', 'abc', 'xyz'] aList.reverse() print(aList)
方法三: sort() 函数用于对原列表进行排序
list.sort(cmp=None, key=None, reverse=False)
- cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
bList= ['a', 'b', 'C', 'd'] bList.sort(reverse=True) print(bList)
更多相关内容 -
python让列表倒序输出的实例
2020-12-24 07:33:03如下所示: 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:]... -
Python 让列表逆序排列的 3 种方式
2020-11-21 03:40:55而在 Python 中,将列表逆序有 3 种方式,下面将逐一讨论。当然,这里说的 3 种方式指的是使用 Python 的内建模块的方法,不使用第三方的方法,包括你自己可能会写的循环等。假设我们现在有这么一个列表[1, 2, 3...让列表逆序排列是我们编程时常碰到的问题,比如现在有一些客户的姓名是将拼音的首字母按 A - Z 排列的,而你现在想找一个姓张( Z )的客户,你就有了将姓名逆序排列的需求了。而在 Python 中,将列表逆序有 3 种方式,下面将逐一讨论。
当然,这里说的 3 种方式指的是使用 Python 的内建模块的方法,不使用第三方的方法,包括你自己可能会写的循环等。
假设我们现在有这么一个列表
[1, 2, 3, 4, 5]
我们最终想得到的是
[5, 4, 3, 2, 1]
怎么办?
第一种方式 list.reverse()
Python 的 list.reverse() 方法,会直接在原来的列表里面将元素进行逆序排列,不需要创建新的副本用于存储结果。
就像你看到的这样,调用 list.reverse() 的返回值是 None ,它逆序的结果直接体现在原来的列表里面。
这种方式,有好处也有坏处。好处是节省内存使用,因为我们不需要重新申请空间来保存最后的结果。坏处是,我们修改了原来的数据,如果我们后面要使用原数据的话不方便。(虽说再倒序一次就行,但毕竟使用了多余的操作)。
从可读性来说,我喜欢这种方式。这个方法从字面意思上就告诉了我们所做的操作,即使是 Python 新手不知道这个方法,也能大致清楚这个完成了什么功能。
第二种方式 使用切片 [::-1]
Python 的列表有一个特性叫做切片,你可以将它看作是方括号( [ ] )使用的扩展。
简单的说下切片的使用
mylist[start:end:step]
上面的操作表示取 mylist 的第 start 个(列表索引从 0 开始)到第 end 个元素(不包括第 end 个),其中每隔 step 个(默认 1 )取一个。
当然,start 、end 和 step 都是可选的。
mylist[:] 会返回 mylist 的副本
加上 step 的话也正常工作
而当 start 、end 和 step 为负时,表示从反方向遍历,看下面的例子就理解了
所以 mylist[::-1] 就能达到逆序的目的
相比于第一种方式,这种方式会另外创建副本来保存列表的所有元素,所以需要更多的内存空间。并且,由于使用了切片的特性,导致在可读性上也不如之前的方式。但是这种方式没有改变原来的列表,在某些情况下算是一种优势。
第三种方式 使用 reversed() 方法
reversed 方法会将列表逆序的结果存储到迭代器里面,这种方式不会改变原来的列表,也不会创建原来列表的完整副本,只会多出迭代器对象所占的空间,相对来说也比较高效。(不明白迭代器原理的同学可以看下我之前的一篇文章 一步一步带你理解 Python 迭代器)
如果要访问所有的元素,循环就好,就像这样
看了例子后,我们发现,这个的可读性也好,毕竟 reversed 字面意思已经体现出来了。
但是,如果我们想要一个列表呢,也简单
虽然这能达到目的,但是如果我们最终想要得到列表的话,这里使用 reversed 方法就没有意义了,因为这里我们又创建了 mylist 的副本。针对这种情况,用第一种或第二种方式更合适。
那么选择哪一种呢
1、显然,第一种是首选。毕竟高效、易读。如果不要保留原列表的数据,使用这种方式显然更有优势,否则选择后两种。
2、如果最后需要得到列表类型的结果,那么选第二种方式比较合理。否则,第三种方式更高效。
-
Python列表倒序输出及其效率详解
2021-01-14 09:27:14Python列表倒序输出及其效率方法一使用Python内置函数reversed()for i in reversed(arr): passreversed返回的是迭代器,所以不用担心内存问题。方法二使用range()倒序for i in range(len(arr) - 1, -1, -1): pass...Python列表倒序输出及其效率
方法一
使用Python内置函数reversed()
for i in reversed(arr): pass
reversed返回的是迭代器,所以不用担心内存问题。
方法二
使用range()倒序
for i in range(len(arr) - 1, -1, -1): pass
方法三
先使用list自带的reverse()函数,再用range()循环
arr.reverse()
for i in range(len(arr)): pass
因为要先倒序,再循环,所以效率会比较低。
方法四
先使用list自带的sort()函数来倒序,再用range()循环
arr.sort(reverse=True)
for i in range(len(arr)): pass
因为要先排序,再循环,所以效率会比较低。
这里不讨论Python内置函数sorted(),它的效率比list自带的sort()函数要慢。
效率
对比代码
import time
arr = [x for x in range(10000000)]
arr1 = arr.copy()
start = time.process_time()
for i in reversed(arr): pass
end = time.process_time()
print('方法一(reversed):', end - start)
start = time.process_time()
for i in range(len(arr) - 1, -1, -1): pass
end = time.process_time()
print('方法二(range倒序):', end - start)
start = time.process_time()
arr.reverse()
for i in range(len(arr)): pass
end = time.process_time()
print('方法三(先reverse再range):', end - start)
start = time.process_time()
arr1.sort(reverse=True)
for i in range(len(arr1)): pass
end = time.process_time()
print('方法四(先sort再range):', end - start)
对比结果
数组长度为一百万时(跑了三次):
数组长度为一千万时(跑了两次):
数组长度为一亿时(跑了两次):
结论
效率:方法一 > 方法二 > 方法三 > 方法四
然而并不差多少emmm
但还是尽量使用迭代器吧,数据量很大的时候不用迭代器的话有可能会占用过多的内存。
到此这篇关于Python列表倒序输出及其效率详解的文章就介绍到这了,更多相关Python列表倒序输出及其效率内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!
-
利用python切片实现将列表元素倒叙输出
2020-04-15 16:19:59利用python切片实现将列表元素倒叙输出 简单的说下切片的使用mylist[start: end :step] 上面的操作表示取 mylist 的第 start 个(列表索引从 0 开始)到第 end 个元素(不包括第 end 个),其中每隔 step 个(默认 1... -
基于python3实现倒叙字符串
2020-12-20 12:17:27这篇文章主要介绍了基于python3实现倒叙字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 google测试工程师的一道题: 设计一个函数,使用任意语言,完成... -
python实现对列表中的元素进行倒序打印
2021-01-02 21:41:16有列表[a, d, f, j,z,Z,1],对列表进行倒序,打印结果为[1,Z,z,j,f,d,a] 2.需求分析: (1).根据逻辑找规律,确定数据替换进行的次数,元素个数为奇数和偶数需要注意。 (2).交换数据的双方,索引不同,其中一个由... -
python 列表倒序输出
2021-01-18 11:30:30python 列表倒序输出 #使用reverse li1 = [1, 6, 4, 3, 7, 9] li2 = ['a', 'm', 's', 'g'] li1.reverse() li2.reverse() print(li1, li2) # 利用list切片 li1 = [1, 6, 4, 3, 7, 9] li2 = ['a', 'm', 's', 'g'] ... -
Python倒序循环列表(序列)
2021-09-27 10:50:311.如果要倒序遍历访问序列中的元素,可以对该序列使用reversed() 函数,reversed函数会生成一份倒序列表的拷贝,但是不会改变原列表。这个函数理解起来很自然,例如 for i in reversed(list),示例代码: >>... -
Python3倒序输出字符串的N种方法(含代码和介绍)
2018-11-04 13:16:55Python3倒序输出字符串的N种方法,介绍了包括直接reverse方法,for循环正序和逆序法等三种方法来进行字符串倒序 -
python怎么将列表/字符串倒序输出
2021-09-22 10:09:25列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。 列表的数据项不需要具有相同的类型。 切片实现逆序取后三个 列表的三个参数值: 第一个参数值代表索引开始的位置,比如[2,4]是从位置2开始... -
Python | 实现字典倒序输出
2022-03-03 22:21:38Python 字典 将字典进行倒序翻转 >>> dic = {"a":1,"c":2,"b":3} >>> dic {'a': 1, 'c': 2, 'b': 3} >>> keys = list(dic.keys()) >>> values = list(dic.values()) >>> keys.reverse() >>> values.reverse() >>> ... -
python-逆序输出
2021-07-22 11:04:41jmu-python-逆序输出 前言 学习python的日常 提示:以下是本篇文章正文内容,下面案例可供参考 题目: 输入一行字符串,然后对其进行如下处理。 输入格式 字符串中的元素以空格或者多个空格分隔。 输出格式: 逆序... -
python如何逆序输出数组
2021-01-14 14:10:56详细内容今天就为大家分享一篇python实现将一个数组逆序输出的方法,具有很好的参考价值,希望对大家有所帮助。方法一:(推荐学习:Python视频教程)使用for循环从数组最大值开始遍历,每打印出一个值,数组最大值减... -
Python倒叙输出字符串简单代码
2021-01-17 19:47:01s=('123456') i=len(s)-1 while i>=0: print(s[i],end='') i = i - 1 第二种倒着数 s=('123456') i = -1 while i >= -1*len(s): print(s[i],end='') i = i - 1 -
python:使用栈倒叙输出字符
2022-03-05 17:07:26'''用栈将字符倒叙输出''' def reString(instring): #定义函数 s = Stack() #建栈 revString = '' #待放入的字符 for i in instring: s.push(i) #循环进栈 while not s.isEmpty(): #循环:直到空栈为止 -
python range的逆序输出
2022-02-27 13:28:42range的逆序输出的两种方式: 1、使用range里的步长参数 step,step为负值即代表反向输出 range(begin, end, step) range(begin, end, -1) 表示逆序,范围为: [begin, end) 例子如下: # range(begin, end, 方向) ... -
python中倒叙输出 list有多个行,按其中一行排序
2021-04-20 12:49:16python倒数循环 for i in range(len(list)-1,-1,-1): -
python 输出列表(list)的 倒序的三种方法
2019-06-11 16:27:27lists = [1,3,4,5,6,7,9,2] # 切片 print lists[::-1] # 函数reverse 对数组进行操作 lists.reverse() print lists # 函数reversed 返回一个迭代对象,需要list化 print list(reversed(lists)) ... -
python中list列表的切片截取操作,包含倒序输出
2021-01-14 19:11:25python中list列表的切片截取操作,包含倒序输出python中list列表的切片截取操作,包含倒序输出列表定义list为list = [*,*,*,*,*,*],切片为list[start:stop:step],其中,start:开始位(索引值) stop:结束位(索引值... -
python中将列表中的元素倒序并在一行输出
2021-03-18 22:37:01python中将列表中的元素倒序一行输出 1、python中如何将列表中的元素倒序打印呢?废话不多说,直接上代码: test_list=[1,2,3,4,5] for i in test_list[::-1]: print(i) 输出: 第一个参数为开始位置,空表示第一... -
python倒序输出
2020-11-29 10:10:32python列表倒序输出及其效率方法一使用python内置函数reversed()for i inreversed(arr): passreversed返回的是迭代器,所以不用担心内存问题。 方法二使用range()倒序for i in range(len(arr) - 1, -1,... -
Python在给列表排序输出时,返回的结果为空(None)
2021-09-08 14:47:08Python在给列表排序输出时,返回的结果为空(None) python利用sort()方法进行排序时,发现重新给列表进行排序的语句必须单独作为一行。 如果在重新给列表排序的时候,给它嵌套在其他语句中,比如说赋值语句,或者... -
Python:使用while循环来处理列表和字典
2020-12-09 10:32:051. 在列表之间移动元素#首先创建一个未确认列表unconfirmed_users=['alice','brian','candace']#然后创建一个已确认空列表confirmed_users=[]while unconfirmed_users:#将未确认列表删除最后一个元素并返回值,赋值... -
Python 列表sort()添加key和reverse参数操作方法|python基础教程|python入门|python教程
2021-01-14 02:00:26https://www.xin3721.com/eschool/pythonxin3721/本文是关于Python列表sort()添加key和reverse参数操作方法介绍,之前python sorted 倒序法在前面文章有中简单介绍过,sort()是python列表排序方法,除了列表cmp()...