python - 检查您是否可以将列表分成 2 以及其中的数字的精确总和

标签 python python-3.x algorithm list

我的问题是我有一个列表,例如

l =[1, 2, 3, 4, 5, 15]

我想将它分成两个列表,list1 将包含实际列表的单个元素,该元素应该是列表中所有其他数字的总和,list2 包含其余部分。所以这个输出将是 ([1, 2, 3, 4, 5], [15]) 如果可能的话,返回 False

最佳答案

这是一种方式,但不一定是最佳方式。它使用了,在我看来未被充分利用的,for...else...构造。

我还反转 range 迭代器。在您提供的情况下,这会更有效率。

l = [1, 2, 3, 4, 5, 15]

def splitter(l):
    for i in reversed(range(len(l))):
        if sum(l[:i]) == sum(l[i:]):
            return [l[:i], l[i:]]
    else:
        return False

splitter(l)  # [[1, 2, 3, 4, 5], [15]]

关于python - 检查您是否可以将列表分成 2 以及其中的数字的精确总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48538451/

相关文章:

python - 无法将 len (x) 转换为可用于字符串切片的 int?

algorithm - KornShell 从具有 n 个对象的集合中生成 k 个对象的组合数

algorithm - 通过适应度函数从种群中选择个体

JavaScript 没有检测到数组中的 indexOf -1

python - Pandas :组内最大值和最小值之间的差异

python - 如何在运行时使用 python 更改对象类型

python - 将 SQL Server 的 Linux ODBC 驱动程序添加到 Kaggle/Python docker 镜像

python - 警告 : pip is configured with locations that require TLS/SSL, 但是 Python 中的 ssl 模块不可用

Python 3,尝试登录facebook并获取源代码

python - 使用 beautifulsoup 美化 html 文档的一部分