如何对列表中特定范围的元素进行排序?

发布于 2024-11-27 05:35:05 字数 198 浏览 0 评论 0原文

假设我有一个列表,

lst = [5, 3, 5, 1, 4, 7]

我想让它从第二个元素 3 到末尾排序。

我以为我可以通过以下方式做到这一点:

lst[1:].sort()

但是,这是行不通的。

我该怎么做呢?

Suppose I have a list,

lst = [5, 3, 5, 1, 4, 7]

and I want to get it ordered from the second element 3 to the end.

I thought I could do it by:

lst[1:].sort()

But, this doesn't work.

How can I do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

可遇━不可求 2024-12-04 05:35:05
lst = lst[0:1] + sorted(lst[1:])
lst = lst[0:1] + sorted(lst[1:])
陌路黄昏 2024-12-04 05:35:05
lst = [5, 3, 5, 1, 4, 7]
lst[1:] = sorted(lst[1:])
print(lst) # prints [5, 1, 3, 4, 5, 7]
lst = [5, 3, 5, 1, 4, 7]
lst[1:] = sorted(lst[1:])
print(lst) # prints [5, 1, 3, 4, 5, 7]
逆流 2024-12-04 05:35:05
so = lambda x, index: x[:index]+sorted(x[index:])

所以称之为(lst,1)

In [2]: x = [5, 3, 5, 1, 4, 7]
In [3]: so(lst, 1)
Out[4]: [5, 1, 3, 4, 5, 7]
so = lambda x, index: x[:index]+sorted(x[index:])

so call it as so(lst, 1)

In [2]: x = [5, 3, 5, 1, 4, 7]
In [3]: so(lst, 1)
Out[4]: [5, 1, 3, 4, 5, 7]
七度光 2024-12-04 05:35:05

您可以使用以下代码:

lst = [5, 3, 5, 1, 4, 7]

searchValue = 3

def get_sorted(lVals, searchVal=None, startIndex=None):
    if startIndex and startIndex < len(lVals):
        return lVals[:startIndex] + sorted(lVals[startIndex:])         
    elif searchVal and searchVal in lVals:
        valueIndex = lst.index(searchValue)
        return lVals[:valueIndex] + sorted(lVals[valueIndex:])
    return sorted(lVals)

You can use the following code:

lst = [5, 3, 5, 1, 4, 7]

searchValue = 3

def get_sorted(lVals, searchVal=None, startIndex=None):
    if startIndex and startIndex < len(lVals):
        return lVals[:startIndex] + sorted(lVals[startIndex:])         
    elif searchVal and searchVal in lVals:
        valueIndex = lst.index(searchValue)
        return lVals[:valueIndex] + sorted(lVals[valueIndex:])
    return sorted(lVals)
娇女薄笑 2024-12-04 05:35:05

最好在切片内进行。

>>> lst = [5, 3, 5, 1, 4, 7]
>>> lst[1:]=sorted(lst[1:])
>>> lst
[5, 1, 3, 4, 5, 7]

Its best to do it within the slice.

>>> lst = [5, 3, 5, 1, 4, 7]
>>> lst[1:]=sorted(lst[1:])
>>> lst
[5, 1, 3, 4, 5, 7]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文