Исправление логики размещения последовательных элементов в столбце таблицы списка.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Исправление логики размещения последовательных элементов в столбце таблицы списка.

Сообщение Anonymous »

Мне нужно создать программу Python, которая помещает high_priority_order = "Order B" в Schedule_table, следуя следующей логике:
Это означает, что мне нужно добавить 2 часа подряд в столбце «Машина 3» таблицы Schedule_table,
затем добавьте 2 часа подряд в столбец «Машина 2» таблицы Schedule_table,< /p>
затем добавьте 3 часа подряд в столбец «Машина 4» таблицы Schedule_table,
а затем добавьте 1 час в столбец «Машина 1" столбца Schedule_table.
j_column_order = [['Machine 3', 2], ['Machine 2', 2], ['Machine 4', 3], ['Machine 1', 1]]

и другие необходимые данные...
# What should be filled into the cells of the schedule_table
highest_priority_order = "Order B"

# The table where the cells should be filled in the available spaces
schedule_table = [
['Hour', 'Machine 1', 'Machine 2', 'Machine 3', 'Machine 4', 'Deadline'],
[1, 'Order A', None, None, None, None],
[2, 'Order A', None, None, None, None],
[3, 'Order A', None, None, None, None],
[4, None, 'Order A', None, None, None],
[5, None, 'Order A', None, None, None],
[6, None, None, 'Order A', None, None],
[7, None, None, 'Order A', None, None],
[8, None, None, None, 'Order A', None],
[9, None, None, None, None, None],
[10, None, None, None, None, 'Order A'],
[11, None, None, None, None, 'Order B'],
[12, None, None, None, None, None],
[13, None, None, None, None, 'Order C'],
[14, None, None, None, None, 'Order D'],
[15, None, None, None, None, None]
]

Поместите часы в ячейки, где указано «Нет», в соответствующих столбцах машин, указанных в j_column_order, гарантируя, что часы для каждого показания могут быть размещены последовательно в указанном столбце.
schedule_table = [
['Hour', 'Machine 1', 'Machine 2', 'Machine 3', 'Machine 4', 'Deadline'],
[1, 'Order A', None, 'Order B', None, None],
[2, 'Order A', None, 'Order B', None, None],
[3, 'Order A', None, None, None, None],
[4, None, 'Order A', None, None, None],
[5, None, 'Order A', None, None, None],
[6, None, 'Order B', 'Order A', None, None],
[7, None, 'Order B', 'Order A', None, None],
[8, None, None, None, 'Order A', None],
[9, None, None, None, 'Order B', None],
[10, None, None, None, 'Order B', 'Order A'],
[11, None, None, None, 'Order B', 'Order B'],
[12, None, None, None, None, None],
[13, None, None, None, None, 'Order C'],
[14, None, None, None, None, 'Order D'],
[15, None, None, None, None, None]
]

Это мой код:
# Definition of the order in which the order should be added
machine_column_order = [['Machine 3', 2], ['Machine 2', 2], ['Machine 4', 3], ['Machine 1', 1]]

def place_order(table, machine_column_order, order):
current_hour = 1 # Start from the first row after the header

for machine, hours_needed in machine_column_order:
column = table[0].index(machine) # Find the index of the machine column

assigned_hours = 0 # Counter for consecutive assigned hours
while assigned_hours < hours_needed and current_hour < len(table):
# If the cell is empty at that hour, assign the order
if table[current_hour][column] is None:
table[current_hour][column] = order
assigned_hours += 1

# Move to the next hour
current_hour += 1

# Call the function to place "Order B"
place_order(schedule_table, machine_column_order, priority_order)

# Print the updated schedule table
for row in schedule_table: print(row)

Вывод неверен, поскольку, хотя он и предотвращает одновременное назначение «Заказа B» разным машинам, часы для каждого заказа не являются последовательными. Например, в столбце "Машина 2" предполагалось разместить "Заказ Б" на 2 часа подряд ['Машина 2', 2], а здесь они не идут подряд :
[3, 'Order A', 'Order B', None, None, None]
[4, None, 'Order A', None, None, None]
[5, None, 'Order A', None, None, None]
[6, None, 'Order B', 'Order A', None, None]


Подробнее здесь: https://stackoverflow.com/questions/790 ... ble-column
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»