从索引 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)
我有一张纸条,我想获取源数据 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)