У меня возникла эта простая проблема, и я посмотрел похожие ответы. Проблема в том, что, по-видимому, я сравниваю список с int, и многие говорят, что решение - просто использовать len (list). Дело в том, что я это сделал, и проблема осталась прежней. Что странно, если я поменяю> на <, проблема будет решена. Дело, конечно, в том, что мне нужен>, а не <. Если я поменяю положение элементов. Бывает наоборот. </p>
Упражнение таково:
-Составьте список из 3 имен сотрудников
-Составьте еще один список и поместите в подсписок дни месяц их отсутствия на рабочем месте.
-Печать имена сотрудников и дни его отсутствия Показать сотрудника с количеством посылок
-Показать имя -или фамилии - с сотрудниками, отсутствовавшими менее суток.
Вот и проблема
employees = ["Nicolás", "Gonzalo", "Tomás"]
absences = [[1, 5, 9], [2], [3, 6, 12, 17]]
for x in range(len(employees)):
print(employees[x], absences[x])
for x in range(len(employees)):
print(employees[x], len(absences[x]))
minorposition = 0
less_absences = int(len(absences[0]))
quantity = 1
for x in range(1, len(employees)):
absences_per_emp = len(absences[x])
if less_absences > absences_per_emp: -----> here is the problem
less_absences = absences[x]
minorposition = x
elif less_absences == absences[x]:
quantity = quantity + 1
if quantity == 1:
print("The employee with less absences is:")
print(employees[minorposition])
else:
print("The employees with minor absences:")
for x in range(len(employees)):
if absences[x] == menor:
print(employees[x])
EDIT: теперь я обнаруживаю, что, если я заменю переменную тем, что на ней, код будет работать нормально:
empleados = ["Nicolás", "Gonzalo", "Tomás"]
faltas = [[1, 5, 9], [2], [3, 6, 12, 17]]
posmenor = 0
menor = len(faltas[0])
cantidad = 1
for x in range(1, len(empleados)):
if menor > len(faltas[x]): If I change the menor variable here
menor = faltas[x] for len(faltas[0]) the code runs
posmenor = x correctly. Why this happens?
elif menor == faltas[x]:
cantidad = cantidad + 1