我想就存储在列表列表中的数据访问问题提出一些建议。
我的列表列表如下所示:
my_list = [['RN1', 200, 0.55], ['RN2', 0.8, 0.44], ['RN3', 0.2, 0.01]]
列表是根据内部列表的第三个元素排序的。
我想做的是:
检查第一个内部列表的第三个元素是否大于或等于0.9;如果是,我想创建一个包含第一个内部列表的前2个元素的列表
my_list[0][2] >= 0.9
如果是真的话会给出:
new_list = [['RN1', 200]]
如果没有,我想将my_list[0][2]
元素添加到第二个内部列表的相应元素中:
my_list[0][2] + my_list[1][2]
并检查此值是否更大0.9
。
如果是,我想停止循环添加到我的new_list第二个内部列表的前2个元素:
new_list = [['RN1', 200], ['RN2', 0.8]]
如果没有继续添加元素,直到达到0.9
的阈值。
当然这只是一个例子。我的真实列表可以更大,过程应该是迭代的。
我尝试了不同的可能性,但所有这些都没有用。例如,我做了:
sum_percentage = 0.0
new_list =[]
for i in old_list:
if sum_percentage <= 0.9:
sum_percentage = sum_percentage + i[2]
new_list.append([i[0], i[1]])
其他变种......现在我被卡住了。
任何提示?
非常感谢
答案 0 :(得分:3)
这将为你完成这项工作:
sum_percentage = 0.0
new_list = []
for i in old_list:
new_list.append(i[:2])
sum_percentage += i[2]
if sum_percentage >= 0.9:
break
我认为这是不言自明的,但如果你对任何事情感到困惑,请告诉我,我会扩展这个答案。