我正在寻找一种方法,在嵌套列表中查找其内部元素总和最高的子集
以下是我的嵌套列表:
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
这将为您提供具有最高总和或索引的列表
相关问题 更多 >
编程相关推荐