python条件访问列表列表

时间:2015-04-23 16:10:32

标签: python list

我想就存储在列表列表中的数据访问问题提出一些建议。

我的列表列表如下所示:

my_list = [['RN1', 200, 0.55], ['RN2', 0.8, 0.44], ['RN3', 0.2, 0.01]]

列表是根据内部列表的第三个元素排序的。

我想做的是:

  1. 检查第一个内部列表的第三个元素是否大于或等于0.9;如果是,我想创建一个包含第一个内部列表的前2个元素的列表

    my_list[0][2] >= 0.9
    

    如果是真的话会给出:

    new_list = [['RN1', 200]]
    
  2. 如果没有,我想将my_list[0][2]元素添加到第二个内部列表的相应元素中:

    my_list[0][2] + my_list[1][2]并检查此值是否更大0.9

  3. 如果是,我想停止循环添加到我的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]])
    

    其他变种......现在我被卡住了。

    任何提示?

    非常感谢

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

我认为这是不言自明的,但如果你对任何事情感到困惑,请告诉我,我会扩展这个答案。