python中的这个旋转程序有什么问题?

2024-06-11 07:12:24 发布

您现在位置:Python中文网/ 问答频道 /正文

上下文:(谜机)我要做的是让这段代码运行,这样每次序列经过第一个轮子,第一个轮子就会旋转。在

问题是,我想出了如何做旋转使用下面的一个序列从互联网上,但它不工作时,我改变周围的变量,以便它可以自动匹配更多。它在if函数之后出现错误消息。我已经检查并更改了变量的名称,以使它们更简单和间距。也找不到代码里有什么不起作用的。因为旋转函数不能使用变量吗?在

import collections

theinput=raw_input('enter letter')
x=0



w=collections.ww=([1,2,3,4,5])


if theinput == 'a':
    w.rotate(x)
    a = w[0]
    x= x+1
    w.rotate(x)
 print a

谢谢


Tags: 函数代码名称消息if错误序列互联网
1条回答
网友
1楼 · 发布于 2024-06-11 07:12:24

您可能想要使用的容器是deque,据我所知,collections模块中没有ww这样的变量。在

从上下文的角度来看,deque非常类似于列表,但它的优化方式使您可以轻松(高效地)在两端添加和删除项,这比内置列表的效率稍微高一些。deques还提供了一些在列表中找不到的其他方法,比如rotate。虽然使用结合基本操作的列表很容易做同样的事情,但它们并不是针对这类事情而优化的,而deques则是。但是对于像模拟谜机这样简单的事情,坚持使用列表并不会对性能产生太大的影响。在

我猜你想做的是:

import collections
w = collections.deque([1, 2, 3, 4, 5])
print "Deque state is ", w
print "First item in deque is", w[0]
w.rotate(1)
print "Deque state after rotation is ", w
print "First item in deque is", w[0]

这应该打印出来

^{pr2}$

使用负数作为rotate的自变量来反转

下面是一个只使用内置列表的替代实现

w = [1, 2, 3, 4, 5]
print "List state is ", w
print "First item in list is", w[0]
x = 1 # x is rotation
w0 = w[:-x]
w = w[-x:]
w.extend(w0)
print "List state after rotation is ", w
print "First item in list is", w[0]

相关问题 更多 >