从索引 0 处的源列表创建新列表,在第二个列表中找到匹配项并附加到索引 1 处的新列表

Make new list from source list at index 0, find matching items in second list and append to that new list at index 1

我有一张纸条,我想获取源数据 list1 并从中提取数据。 models 是一个包含 list1 中每个项目的索引 [0] 的列表,现在我想追加或插入 list1 中的特定项目(如果它在 list2 中找到) ], 到第一个索引产生类似下面的东西。请注意,我要从 list2 中匹配的项目不会总是在 list1.

中找到的相同索引中

models = [['model1', 'TT42'], ['model2', 'GG50'], ['model3', 'BB12']]

list1 = [['model1', 'yes', 'TT42'], 
        ['model2', 'yes', 'GG50'],
        ['model3', 'no', 'BB12']]

models = []
for item in list1:
    if item[0] not in models:
        models.append(item[0])
#  models = ['model1', 'model2', 'model3']

list2 = ['TT42', 'GG50', 'BB12']

for item in list1:
    for element in item:
        if element in list2:
            models.insert(1, element)
print(models)
#  models = [model1, TT42, TT42, TT42, model2. model3]
#  what am I missing?

您正在制作一个字符串列表。看起来您使用 insert 函数的目的是插入到列表中,但对象是一个字符串,并且不会像您想要的那样创建 2D 列表。我认为这可以修复您的代码。请注意,我附加了一个列表,根据需要制作了一个二维列表:

list1 = [['model1', 'yes', 'TT42'], 
        ['model2', 'yes', 'GG50'],
        ['model3', 'no', 'BB12']]

list2 = ['TT42', 'GG50', 'BB12']

model = []

for item2 in list2:
    for row in list1:
        if item2 in row:
            model.append([row[0],item2])

print(model)
list1 = [['model1', 'yes', 'TT42'], 
        ['model2', 'yes', 'GG50'],
        ['model3', 'no', 'BB12']]

list2 = ['TT42', 'GG50', 'BB12']

models = []

for find in list2:
    for item in list1:
        if find == item[2]:
            models.append([item[0],find])
            break

print(models)