【问题标题】:How to change the starting position of a list? [duplicate]如何更改列表的起始位置? [复制]
【发布时间】:2020-08-22 22:18:03
【问题描述】:

我的程序需要一个特定的功能。它应该像这样工作:

list = ['C','T', 'Z','L','P']
new_list = hypothetical_function('Z')
print(new_list)
#['Z','L','P','C','T']

python中有没有内置函数可以对list进行这种操作?

【问题讨论】:

  • 我认为您的假设函数应该将现有列表作为参数之一。
  • 那么,你的问题到底是什么?
  • 一些提示可以帮助我们帮助您:1) 更具体地了解您的需求。你说它应该“像这样”工作,你举了一个例子,但描述了你在例子中展示的内容。 2) 向我们展示一些您已经尝试编写的代码,以及它是如何失败的。

标签: python list


【解决方案1】:

只需使用index 获取位置,然后连接相关切片:

def reorder(lst, first):
    pos = lst.index(first)
    return lst[pos:] + lst[:pos]

lst = ['C','T', 'Z','L','P']
print(reorder(lst, 'Z'))

(我不知道有什么内置函数可以做到这一点。)

【讨论】:

  • 哈!我完全误读了这个问题,没有注意到 OP 是在元素上索引,而不是旋转次数。这是正确答案~
【解决方案2】:

可以使用deque对象的rotate方法:

from collections import deque

dq = deque(lst)
dq.rotate(lst.index('Z') + 1)
print(dq)
# deque(['Z', 'L', 'P', 'C', 'T'])

【讨论】:

    猜你喜欢
    • 2015-03-12
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多