程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何根据 Python 中另一个列表的(子列表)索引对列表进行分区大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何根据 Python 中另一个列表的(子列表)索引对列表进行分区?

开发过程中遇到如何根据 Python 中另一个列表的(子列表)索引对列表进行分区的问题如何解决?下面主要结合日常开发的经验,给出你关于如何根据 Python 中另一个列表的(子列表)索引对列表进行分区的解决方法建议,希望对你解决如何根据 Python 中另一个列表的(子列表)索引对列表进行分区有所启发或帮助;

我有两个列表,一个包含一些独特的元素(在我的例子中是整数),另一个包含指示元素应该插入到新创建的嵌套列表的哪个子列表中的索引。

elements = [1,2,3,4,5,6]
inDices =  [0,1,1]

expected_result = [[1,2],[3,6],[4,5]]

元素列表仅包含唯一项,可能未排序。 索引列表是“标准化的”,这样较低的索引将始终首先出现。 新的嵌套列表应使用索引来确定元素所属的预期结果的子列表。

我想出了以下函数,但我觉得应该有更简单的方法。

def inDices_to_nested_Lists(inDices: Sequence[int],elements: SequencE):
    result = []
    for i in range(max(inDices)+1):
        subList = []
        for j in range(len(elements)):
            if inDices[j] == i:
                subList.append(elements[j])
        result.append(subList)
    return result

谁能想出一种更简单、可能更像 Python 的方式来实现相同的结果?

解决方法

尝试将此 for 循环与 zip 一起使用:

l = [[] for i in range(max(inDices) + 1)]
for x,y in zip(elements,inDices):
    l[y].append(X)
print(l)

输出:

[[1,2],[3,6],[4,5]]
@H_675_37@
@H_675_37@

大佬总结

以上是大佬教程为你收集整理的如何根据 Python 中另一个列表的(子列表)索引对列表进行分区全部内容,希望文章能够帮你解决如何根据 Python 中另一个列表的(子列表)索引对列表进行分区所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。