在python中,如何在嵌套列表中找到元素总和最高的子集?

2024-06-16 19:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法,在嵌套列表中查找其内部元素总和最高的子集

以下是我的嵌套列表:

 ntdList=[
[1, 2, 3, 1],
[3, 3, 1, 10],
[1, 3, 2, 1],
[3, 4, 2, 1],
]

假设我想将其子集化。子集必须按特定形状排列:两行三列。让我们称之为sublist 2x3,这意味着一个列表列表,其中包含两个内部列表和每个列表3个元素。 下面是一个子集的示例

subSet=[[1,2,3],[3,3,1]] 

但现在还有一个额外的步骤。我正在寻找一个最好的地方。最好我指的是内部元素的最高总和

因此,条件是: (i) 保持子集形状,如上所述,以及 (ii)产生最高的内部值总和

根据这两条规则,放置子集的最佳位置是以下位置:从ntdList[0][1:4]到ntdList[1][1:4]。结果是20。同样,从ntdList[1][1:4]到ntdList[2][1:4]。结果也是20

我尝试了下面的代码,但是出现了一个问题(“列表索引超出范围”),我无法处理这个问题。结果正在存储中,但“列表索引超出范围”的问题仍然存在

除此之外,我不确定我是否做对了

这是我的密码:

sumList=[]
for row in range(2): # number of rows (inner list)
    for col in range(3): # number of columns (elements of inner list)
        sumList.append(
            
            sum(
                [
                    sum(ntdList[row][col:col+3])
            ,
            sum(ntdList[row+1][col:col+3])
                ]
            )
        )

print(sumlist) # [13, 20, 15, 11, 13, 20, 14, 11, 15, 13, 6, 2]
max(sumList) # 20

Tags: ofin元素列表forrangecol子集
1条回答
网友
1楼 · 发布于 2024-06-16 19:14:05

这将为您提供具有最高总和或索引的列表

neasted_list = [[1,2,3],[2,3,3],[3,2,4], [1,2,3]]
max_ = list(map(sum,neasted_list))
# get the list
print(neasted_list[max_.index(max(max_))])
# get the index
print(max_.index(max(max_)))

相关问题 更多 >