我的任务是编写一个循环移位四个变量(a、b、c、d)值的代码。我不允许使用一个以上的新变量来完成任务。例如,如果(a、b、c、d)的变量值最初分别为11、21、31和41,则(a、b、c、d)的最终值应分别为41、11、21和31。我也不允许对原始代码进行更改
# given code
a = 11
b = 21
c = 31
d = 41
print('before rotation: a =', a, 'b =', b, 'c =', c, 'd =',d)
# the code that i wrote
import collections
var = collections.deque([a, b, c, d])
var.rotate(1) # to the right
# given code
print('after rotation: a =', a, 'b =', b, 'c =', c, 'd =', d)
我预计产出为:
before rotation: a = 11 b = 21 c = 31 d = 41
after rotation: a = 41 b = 11 c = 21 d = 31
但我得到了:
before rotation: a = 11 b = 21 c = 31 d = 41
after rotation: a = 11 b = 21 c = 31 d = 41
您正在旋转
var
,这是一个deque
对象,其值与a
、b
、c
和d
的值完全不同,您使用它来初始化var
,因此对var
的值所做的更改不会反映在a
、b
、c
和d
的值上您可以通过将
a
、b
、c
和d
指定为元组,将var
解包为一个iterable:或者,您也可以通过硬编码旋转的元组,自己旋转元组:
相关问题 更多 >
编程相关推荐