将列表中的项目从前往后移动

Eas*_*hie 2 python list python-3.x

我对 python 和编程都很陌生,所以我觉得我正在努力思考最简单的事情......

假设我有一个包含 12 项的清单:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
Run Code Online (Sandbox Code Playgroud)

以及与列表中的一项匹配的变量:

b = 7
Run Code Online (Sandbox Code Playgroud)

现在我想在列表中找到该匹配项,并以相同的顺序将匹配项之前的每个项目移至列表末尾,如下所示:

a = [7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我将如何在 python 3.4.2 中执行此操作?

匹配可以针对任何索引处的任何项目,但项目数量始终相同 (12)。

mu *_*u 無 5

使用列表切片:

>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
>>> idx = a.index(7)
>>> a = a[idx:] + a[:idx]
>>> a
[7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

请注意,ValueError如果在数组中找不到要搜索的值,这将抛出 a ,在这种情况下,您需要使用try- exceptblock捕获它