首页 > 解决方案 > 如何遍历嵌套列表,将第一个元素与另一个列表进行比较,然后追加到新列表?

问题描述

我正在尝试为 CNN 创建三个单独的列表(训练、测试和验证)。
我有三个仅包含图像名称的列表(train_data、test_data、val_data)

train_data = ["img_1.png", "img_2.png"] 
test_data = ["image_3.png", "img_4.png"] 
val_data = ["img_5.png", "img_6.png"]

我有另一个嵌套列表,其中包含深度学习模型的所有图像名称和相关标签

image_annotations = [['img_1.png', 432, 662, 554, 749, 'class'], 
    ['img_1.png', 647, 456, 754, 594, 'class'], ['img_2.png', 598, 659, 897, 
    302, 'class']]

我想在我的image_annotations列表中运行一个循环,如果图像名称与列表中的图像名称相同,train_data, test_data, val_data那么我想将以下四个数字和类名附加到该列表中。该image_annotations列表具有相同图像的多个列表,但边界框编号不同。我想这可能很简单,但我无法弄清楚。

标签: pythonlistloopsdeep-learningnested-lists

解决方案


我认为这可能会对您有所帮助:

train_data_full = []
for t_d in train_data:
    for i_a in image_annotations:
        if t_d in i_a:
            train_data_full.append(i_a)

推荐阅读