小编Bsh*_*Bsh的帖子

将整数列表划分为总和相等的 K 个子列表

类似的问题有12,但答案没有帮助。假设我们有一个整数列表。我们希望找到K不相交的列表,使它们完全覆盖给定的列表,并且都具有相同的总和。例如,如果A = [4, 3, 5, 6, 4, 3, 1]然后K = 2答案应该是:

[[3, 4, 6], [1, 3, 4, 5]]
or
[[4, 4, 5], [1, 3, 3, 6]]
Run Code Online (Sandbox Code Playgroud)

我编写了一个代码,该代码仅在以下情况下才有效:K = 2对于较小的列表作为输入,但对于较大的列表,它可以正常工作,因为代码的复杂性很高,操作系统会终止任务。我的代码是:

def subarrays_equal_sum(l):
    from itertools import combinations

    if len(l) < 2 or sum(l) % 2 != 0:
        return []
    l = sorted(l)
    list_sum = sum(l)
    all_combinations = []
    for i in range(1, len(l)):
        all_combinations += (list(combinations(l, i)))

    combinations_list = [i …
Run Code Online (Sandbox Code Playgroud)

python algorithm combinations python-3.x

6
推荐指数
1
解决办法
758
查看次数

如何修复字符串格式函数的语法?

我有一个包含字符串格式的 python 函数的文本文件。我的代码从文本文件中读取每个函数,为其提供适当的输入,然后运行它。要从文本文件运行函数字符串(例如fun_str),我在代码中使用以下代码片段:

dict = {}
exec(fun_str, globals(), dict)
f, = dict.values()
f()
Run Code Online (Sandbox Code Playgroud)

只要每个函数字符串都具有 python 标准语法(在缩进、换行等方面),代码就可以正常运行。但是,如果代码读取函数字符串,例如:

"def fun(list): output_list = [] for i in list: if i not in output_list: output_list.append(i) return output_list"
Run Code Online (Sandbox Code Playgroud)

(全部排成一行)

然后SyntaxError: invalid syntax是提出与^^^for

是否有任何内置模块或任何方法来修复函数字符串,以便它在运行之前遵循标准语法exec

python python-3.x

1
推荐指数
1
解决办法
54
查看次数

标签 统计

python ×2

python-3.x ×2

algorithm ×1

combinations ×1