我有一个名单列表,allBins其中包含几个表示不同容器的列表,这些容器内部是不同数量的元组,格式为(iD,volume).我需要通过对元组的第二个元素求和来迭代来对每个二进制数中的项的总和进行求和.
我尝试了很多东西:
sum(bin[1] for bin in allBins)给我一个'列表索引超出范围'的错误,大概是因为有些垃圾箱有多个元组?
allBins = [[(3,20)],[(1,11),(0,6)],[(4,16),(2,5)]]
Run Code Online (Sandbox Code Playgroud)
我需要一行代码,根据我选择总和的bin,给出以下整数:
第一箱: 20
第二箱: 17
第3箱: 21
您可以使用列表理解:
allBins = [[(3,20)],[(1,11),(0,6)],[(4,16),(2,5)]]
print([sum(y[1] for y in x) for x in allBins])
# [20, 17, 21]
Run Code Online (Sandbox Code Playgroud)
处理你的实际要求:"我需要某种循环或理解,取决于我选择总和的哪个箱子":
allBins = [[(3,20)],[(1,11),(0,6)],[(4,16),(2,5)]]
bin_number = 2
print(sum(x[1] for x in allBins[bin_number-1]))
# 17
Run Code Online (Sandbox Code Playgroud)
您可以指定bin_number以上查找该特定bin的总和.