У меня есть список заказов с заголовками (ID, процесс, материал, отделка) и набором машин.У него есть заголовки (ID, процесс, материалы, отделка).Для каждого заказа я хочу найти совместимые машины.
Я могу создать список списка, содержащий заказы и список списка, содержащий машины, и использовать цикл for для завершения этой задачи.Код для того же самого упомянут ниже.Тем не менее, я хочу более эффективный метод, чтобы сделать то же самое.
orders = [[1, 'cutting', 'Al', 200], [2, 'boring', 'Al', 200]]
machines = [[1, 'cutting', ['Steel', 'Al'], [100,200,300]], \
[2, 'boring', ['titanium', 'PLA', 'ABS'], [100,200]], \
[3, 'hobbing', ['wood', 'Al', 'SS'], [300,400]]]
match = []
for i in range(len(orders)):
for j in range(len(machines)):
if orders[i][1] == machines[j][1] and orders[i][2] in machines[j][2] and \
orders[i][3] in machines[j][3]:
match.append([orders[i][0], machines[j][0]])
print (match)
Я не мог использовать массив numpy, поскольку столбцы материала и разрешения в машинах состоят из списков различной длины, и списки не могут быть элементом массива numpy.Пожалуйста, предложите, что является более эффективным методом для этого.У меня есть сотни заказов и тысячи машин, поэтому этот метод цикла становится крайне неэффективным.