将不同的列表值应用于python中的字典

我有三个包含不同值模式的列表。这应该仅在基于某些 if 条件的单个字典中附加特定值。我尝试了以下方法来执行此操作,但我从列表中获取了所有值。


class_list = [1,2,3,4,5,6]


boxes = [[0.1,0.2,0.3,0.4],[0.5,0.7,0.8,0.9],[0.7,0.9,0.4,0.2],[0.9,0.7,0.6,0.3],[0.9,0.14,0.6,0.3],[0.9,0.7,0.6,0.13]]


scores = [0.98,0.87,0.97,0.96,0.94,0.92]


k=1;


data = {}


for a in scores:

    for b in boxes:

        for c in list:

            if a >= 0.98:

                data[k+1] = {"score":a,"box":b, "class": c } ;

                k=k+1;

print("Final_result",data)


呼啦一阵风
浏览 177回答 2
2回答

蝴蝶不菲

也许使用zip:for a,b,c in zip(scores,boxes,class_list):   if a >= 0.98:       data[k+1] = {"score":a,"box":b, "class": c } ;       k=k+1;print("Final_result",data)输出:Final_result {2: {'score': 0.98, 'box': [0.1, 0.2, 0.3, 0.4], 'class': 1}}编辑:for a,b,c in zip(scores,boxes,class_list):   if a >= 0.98:       data[k+1] = {"score":a,"box":b, "class": int(c) } ;       k=k+1;print("Final_result",data)

精慕HU

您正在获取所有值,因为您正在使用所有其他值循环所有值,即 6x6x6 次。我了解您的问题,您需要使用的是 Zip 功能。llist = [1,2,3,4,5,6]boxes = [[0.1,0.2,0.3,0.4],[0.5,0.7,0.8,0.9],[0.7,0.9,0.4,0.2],[0.9,0.7,0.6,0.3],[0.9,0.14,0.6,0.3],[0.9,0.7,0.6,0.13]]scores = [0.98,0.87,0.97,0.96,0.94,0.92]k=1;data = {}for a,b,c in zip(scores, boxes, llist):    if a >= 0.98:        data[k] = {"score":a,"box":b, "class": c } ;        k = k + 1for k in data.keys():    print(k , data[k])ps:避免使用关键字命名变量,列表是关键字。可能会遇到问题,您甚至可以找到原因。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python