给出了一个有序列表中的两个元素,我想创建一个新列表,其中包括(包括)这些元素之间的所有内容。如果第二点在列表中的第一点之前,则会出现问题。右边是我现有的对象排序列表。 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)]
哪个看上去对我来说很难看,但似乎可以承受我的考验。有更好的方法吗?
给出了一个有序列表中的两个元素,我想创建一个新列表,其中包括(包括)这些元素之间的所有内容。如果第二点早于...
将像这样简单地翻转切片来匹配您的测试:
也许这吗?