python对列表中部分元素排序_对列表中元素的子列表进行排序,其余元素保留在p中...

如果我没弄错的话,你的最终目标是对子序列进行排序,而不涉及子序列的项。在在您的示例中,子序列定义为以“B”开头的项。你的示例列表正好包含按字典顺序排列的项,有点太方便了,可能会分散注意力,无法找到一个广义解。让我们用一个不同的例子把事情搞混。怎么样:^{1}$在这里,物品不再被订购(至少我试着整理它们,这样它们就不会被订购了),无论是以“B”开头的物品,还是其他物品。然而,以“B”开头的项目仍然形...
摘要由CSDN通过智能技术生成

如果我没弄错的话,你的最终目标是对子序列进行排序,

而不涉及子序列的项。在

在您的示例中,子序列定义为以“B”开头的项。

你的示例列表正好包含按字典顺序排列的项,

有点太方便了,

可能会分散注意力,无法找到一个广义解。

让我们用一个不同的例子把事情搞混。

怎么样:

^{1}$

在这里,物品不再被订购(至少我试着整理它们,这样它们就不会被订购了),无论是以“B”开头的物品,还是其他物品。

然而,以“B”开头的项目仍然形成单个连续的子序列,占据单个范围1-6,而不是分割范围,例如0-3和6-7。

这可能会让人分心,我将进一步讨论这一方面。在

如果我正确理解您的最终目标,您希望以下列表按如下方式排序:

^{pr2}$

为了实现这一点,我们需要一个返回元组的键函数,这样:第一个值:

如果项不是以“B”开头,则原始列表中的索引(或按相同顺序排列的值)

如果项以“B”开头,则最后一个不以“B”开头的项的索引

第二个值:

如果该项不是以“B”开头,则省略此项

如果项目以“B”开头,则数值

可以这样实现,并且使用一些^{}:def order_sublist(items):

"""

>>> order_sublist(['A', 'B2', 'B11', 'B22', 'B', 'B1', 'B21', 'C', 'C1', 'C11', 'C2'])

['A', 'B', 'B1', 'B2', 'B11', 'B21', 'B22', 'C', 'C1', 'C11', 'C2']

>>> order_sublist(['X', 'B2', 'B11', &#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值