Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:这是不使用快捷方式而反转顺序的最有效方法吗?_Python - Fatal编程技术网

Python:这是不使用快捷方式而反转顺序的最有效方法吗?

Python:这是不使用快捷方式而反转顺序的最有效方法吗?,python,Python,这是大学一年级的课程。因此,不允许使用python快捷方式不确定什么算是反向的快捷方式,火星人的笑脸[:-1]是明显的候选者,但两者都算是快捷方式吗?!,但至少有几个小的改进是容易的: x = [1,2,3,4,5,6,7,8,9,10] #Random list elements for i in range(int(len(x)/2)): value = x[i] x[i] = x[len(x)-i-1] x[len(x)-i-1] = value #Confusio

这是大学一年级的课程。因此,不允许使用python快捷方式

不确定什么算是反向的快捷方式,火星人的笑脸[:-1]是明显的候选者,但两者都算是快捷方式吗?!,但至少有几个小的改进是容易的:

x = [1,2,3,4,5,6,7,8,9,10]
#Random list elements
for i in range(int(len(x)/2)):
    value = x[i]
    x[i] = x[len(x)-i-1]
    x[len(x)-i-1] = value
#Confusion on efficiency
print(x)
这只得到lenx一次-这是一个快速的操作,但没有理由反复重复它-还计算镜像,但有一次,交换更直接,直接使用截断除法运算符将L减半,而不是使用非截断除法,然后在每种情况下使用int.纳秒进行截断,但是可以认为它稍微清晰,并且在显微镜下更快

L = len(x)
for i in range(L//2):
     mirror = L - i - 1
     x[i], x[mirror] = x[mirror], x[i]
slice是一个python内置对象,类似于示例中使用的range和len

__getitem_uu是属于iterable类型的方法,其中x是


这里绝对没有捷径:实际上只有一行。

你的问题是什么?您的代码可以工作,如果您要求我们对此进行评论,那么这对于堆栈溢出来说是一个太宽泛的主题。您可以在代码复查堆栈交换上发布工作代码以请求改进。定义快捷方式。内置函数是否为快捷方式?您是否尝试过:reversed=x[::-1]?对不起,第一次发布。快捷方式是调用外部函数的任何方法,如revered、[::-1]等。。。列表的所有排序或编辑都必须通过手动方法完成,如pop、append、remove等。[::-1]方式的索引不是调用任何外部内容,因为您是在iterable上进行的,它只是调用iterable对象的u_getitem_uu_u方法。所以它使用自己的方法。。。与pop和append完全相同的方法类型。。。。您甚至可以通过执行类似于x的操作来手动调用此函数。_getitem__;…从范围中删除lenx是否有帮助?当然,这两种方法都只能计算一次?@jornsharpe是的,但是每次通过循环,在OP版本的代码中,lenx会被调用两次,所以我的变体会调用它一次,而不是2*N+1次。没有理由叫它两次,一次也行-这里一纳秒,那里一纳秒…:-。啊,当然。对于lenx==10,timeit给出了2.42s和3.77s,所以快了三分之一。这很完美,我的代码是正确的,但我想更有效地理解自我提升能力的代码,还有一些建议,让我的帖子对社区更积极,以免让人觉得我是这样的一个人amateur@TehTris,我的妻子和合著者,也是PSF研究员,也是迄今为止唯一一位为Python社区做出贡献的弗兰克·威利森纪念奖的女性获奖者。。。
x = [1,2,3,4,5,6,7,8,9,10]
x = x.__getitem__(slice(None,None,-1))