gpt4 book ai didi

python - 根据属性之和将数组拆分为数组数组

转载 作者:行者123 更新时间:2023-11-30 22:41:36 26 4
gpt4 key购买 nike

我有一个具有以下结构的数组:

[('path1', 10), ('path2', 12), ('path3', 10), ('path4', 7), ('path5', 18)]

我想根据第二个参数的总和将该数组拆分为数组的数组。我想要一个名为 max_size 的变量,当 max_size 大于 20 时,它应该拆分并开始下一个列表。结果应该是这样的:

[(('path1', 10)), (('path2', 12)), (('path3', 10), ('path4', 7)), (('path5', 18))] 

我如何在Python中做到这一点?我正在尝试写一些类似的内容:

max_size = 0
for i, obj in enumerate(temp):
dfs = []
for j, obj in enumerate(temp):
if(max_size < 100):
max_size = size + obj[1]
dfs.append(pd.read_csv(obj[0]))
temp.remove(obj)
print obj[0]
else:
break;
print i
print "###" * 10
grouped.append(dfs)

但是它不起作用,我被卡住了。

最好做什么?

最佳答案

你可以这样做:

def group_by_sum(data, max_value):
sum = 0
start = 0
result = []
for i, t in enumerate(data):
if sum + t[1] > max_value:
result.append(data[start:i])
start = i
sum = 0
sum += t[1]
result.append(data[start:])
return result

# Example
data = [('path1', 10), ('path2', 12), ('path3', 10), ('path4', 7), ('path5', 18)]
result = group_by_sum(data, 20)
print (result)

查看它在 repl.it 上运行

关于python - 根据属性之和将数组拆分为数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com