Python-在有序列表中的两个元素之间创建一个新的子列表

问题描述 投票:0回答:2

给出了一个有序列表中的两个元素,我想创建一个新列表,其中包括(包括)这些元素之间的所有内容。如果第二点在列表中的第一点之前,则会出现问题。右边是我现有的对象排序列表。 rt是开始边界,rb是结束边界。new_right = right[right.index(rt): right.index(rb) + 1]

此代码段适用,但情况除外

right = [a, rb, c, rt, d, e]

我得到[rt, d, e]而不是包装好的[rt, d, e, a, rb]

有没有一种方法而无需创建复杂的方法?列表理解解决了其他一些人的问题。经过研究,我能够提出[]

begin = right.index(rt)
end = right.index(rb)
if end > begin:
    new_right = right[begin: end + 1]
else:
    new_right = [right[i % r_len] for i in range(begin, r_len + end + 1)]

哪个看上去对我来说很难看,但似乎可以承受我的考验。有更好的方法吗?

给出了一个有序列表中的两个元素,我想创建一个新列表,其中包括(包括)这些元素之间的所有内容。如果第二点早于...

python-3.x list slice circular-list
2个回答
0
投票

将像这样简单地翻转切片来匹配您的测试:


0
投票

也许这吗?

© www.soinside.com 2019 - 2024. All rights reserved.