Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 2.7_Python_List - Fatal编程技术网

用整数生成数字列表并将其移动到Python 2.7

用整数生成数字列表并将其移动到Python 2.7,python,list,Python,List,我试图使包含在值内的整数从最左边移到最右边。例如,如果在运行代码后值为[1,2,3,4,5],则它将为[2,3,4,5,1] 我设法写了代码,但我知道如何使值从最右边移到最左边,这是另一种方式。比如[5,1,2,3,4]。 坐了好几个小时想弄明白,有人吗?多谢各位 values = [1,2,3,4,5] temp = values[len(values) - 1] for index in range(len(values) - 1, 0, -1): values[index] =

我试图使包含在值内的整数从最左边移到最右边。例如,如果在运行代码后值为[1,2,3,4,5],则它将为[2,3,4,5,1]

我设法写了代码,但我知道如何使值从最右边移到最左边,这是另一种方式。比如[5,1,2,3,4]。 坐了好几个小时想弄明白,有人吗?多谢各位

values = [1,2,3,4,5]

temp = values[len(values) - 1]
for index in range(len(values) - 1, 0, -1):
    values[index] = values[index - 1]
values[0] = temp

print values

在您的情况下,不需要知道列表的长度

您可以只使用列表切片:

values[1:] + values[:1]
示例:

In [8]: values = [1,2,3,4,5]

In [9]: values[1:] + values[:1]
Out[9]: [2, 3, 4, 5, 1]

使用切片连接最容易实现这种旋转:

def rotate(lst, n):
    n = n % len(lst)  # allows rotations beyond length
    return lst[n:] + lst[:n]

> rotate([1,2,3,4,5], 1)  # rotate forward
[2, 3, 4, 5, 1]

> rotate([1,2,3,4,5], -2)  # rotate backward
[4, 5, 1, 2, 3]
但是,正在修复原始代码:

temp = values[0]  # store the first value cause it'll be overwritten in loop
for index in range(len(values) - 1):
    values[index] = values[index + 1]  # shift values to the left
values[len(values) - 1] = temp  # write former first to last

您可以使用可变性在列表中循环,如下所示:

    def cycle(input_list):
        list_copy = input_list[:]
        list_copy.append(list_copy.pop(0))
        return list_copy

    # Output
    >>> input_ist = [i for i in range(1, 6)]   # Same as [1,2,3,4,5]
    >>> cycle(input_list)
    [2, 3, 4, 5, 1]

你确定你没有撒谎,而且代码实际上来自于?@StefanPochmann,这种代码在这类问题上很常见。@RoadRunner好吧,我用谷歌搜索了
索引…
行,谷歌只找到了一个,就是我展示的。这是一个字节一个字节的四行代码。但我之所以称之为BS,最原始也是最主要的原因是他们不可能写出上面的版本,而且“几个小时”都试图写出另一个方向,但没有成功,因为它的工作原理完全相同(实际上稍微简单一点,因为
范围
向上更好)。是的。我说这很常见,因为我的数据库中有几乎相同的代码。哦,好吧。我想我希望他能找到答案。这只是你评论的方式,我觉得很搞笑。