Найти - Пользователи
Полная версия: Решение задачи
Начало » Python для новичков » Решение задачи
1 2 3 4 5
FishHook
Я ничего не понял.
Удачи.
sanodin
Где у Вас вывод нумерации ячеек?
Самому в коде искать?
Вот допустим переменная data
[['Иванов', 585, 720], ['Петров', 600, 660], ['Сидоров', 720, 792]
и в ней каждый первый индекс это нумерация ячеек
выбрать самый первый элемент из первого индекса
или самый минимальный “выделяется свободная ячейка с минимальным номером”
for i in data:
    t=i[0]
    y=str(i[1])
    print (t,y[0],min(y))
y-первый элемент
min(y)-минимальный элемент из всего первого индекса(585,600,720)
3
10
Иванов 09:45 12:00
Сидоров 12:00 13:12
Петров 10:00 11:00
Иванов 5 5
Петров 6 0
Сидоров 7 0
[['Иванов', 585, 720], ['Петров', 600, 660], ['Сидоров', 720, 792]]
sanya_rnd
Sanodin, я немного не допонял код. Вывод не таким должен быть. Там же сказано: Сначала Фамилия, потом номер ячейки. Если свободных ячеек нет - пропуск. Номер ячейки определяется из сравнения времени, которое я и не могу сделать нормально.

Я как хотел сделать:

Получил data, в нем n подмассивов по 3 элемента.

Далее я сортировал
data = sorted(data, key=lambda elem: elem)
все элементы по времени сдачи.

А дальше мне нужно что-то типа:
i = 0
j = 0
if data>data:
print(data, j+1)
j = j+1

Но проблема в том, что нужно проверить и последующий элемент, т.е. пока не будет несовпадения. Я запутался в общем.
Stesh
А для чего вы используете для получения данных словарь? Помоему, гораздо проще использовать список. В условии сказано, что все отсортировано уже по датам, сортировать нечего. Нужно лишь пробегать по списку и смотреть, время конца <= время начала. Я бы так решал:

n = int(raw_input())
k = int(raw_input())
l = []
for s in range(k): l.append(0)
ans = []
for i in range(n):
    family, beg, end = raw_input().split(' ')
    hour_beg, min_beg = beg.split(':')
    beg = int(hour_beg)*60 + int(min_beg)
    hour_end, min_end = end.split(':')
    end = int(hour_end)*60 + int(min_end)
    for j in range(k):
        if l[j] <= beg:
            l[j] = end
            ans.append([family, j+1])
            break
for family, i in ans:
    print family, i

Решение очень некрасивое, тут люди очень красиво пишут, но я еще пока не научился этому(сам недавно начал изучать Питон, началось все с парсинга блога).
sanya_rnd
string = list(input())
for elem in string:
    if elem.isalpha() or elem.isspace():
        string.remove(elem)
print(string)

дается строка с любыми символами. Нужно получить только числа. Код выше дает следущее:
sad 21 54 cfc2;1f v
['a', '2', '1', '5', '4', ' ', 'c', 'c', '2', ';', '1', ' ']

т.е. он удаляет, но как бы и не полностью. В чем проблема?
FishHook
sanya_rnd
т.е. он удаляет, но как бы и не полностью. В чем проблема?
Во-первых, ОДНА ЗАДАЧА == ОДНА ТЕМА.
Во-вторых, НЕЛЬЗЯ делать цикл по списку и из этого списка удалять.
Первая итерация, курсор списка стоит на индексе 0. Вы удаляете этот элемент. Соответственно второй элемент получает индекс 0, третий 1 и т.д.
Вторая итерация, курсор получает значение 1. А под индексом 1 у нас уже третий элемент изначальной последовательности, и второй не участвует в цикле.

Решение: используйте filter или list comprehension.

string = list(input())
string = [elem for elem in string if not elem.isalpha() and not elem.isspace() ]
sanya_rnd
FishHook
Во-первых, ОДНА ЗАДАЧА == ОДНА ТЕМА.
Ну вроде мелочь вопрос, не хочется форум засорять задачами однострочными. Учту, если так необходимо.

FishHook
Во-вторых, НЕЛЬЗЯ делать цикл по списку и из этого списка удалять.
Первая итерация, курсор списка стоит на индексе 0. Вы удаляете этот элемент. Соответственно второй элемент получает индекс 0, третий 1 и т.д.
Вторая итерация, курсор получает значение 1. А под индексом 1 у нас уже третий элемент изначальной последовательности, и второй не участвует в цикле


Спасибо за пояснение, именно это нужно было.
@SkillAndLuck@
Мне нужно найти сколько секунд в сутках, неделе и году, но я не знаю как сделать эту задачу в python. Плиз хелп пипл!!!
scidam
 seconds_per_hour = 3600
hours_per_day = 24
days_per_week = 7
# the number of seconds in a day
seconds_per_day = seconds_per_hour * hours_per_day
# the number of seconds in a week
seconds_per_week = seconds_per_day * days_per_week
#The number of seconds in a year... Sorry, we need to know how many days are in a year?



IRIP
@SkillAndLuck@
Мне нужно найти сколько секунд в сутках, неделе и году, но я не знаю как сделать эту задачу в python. Плиз хелп пипл!!!

а что в результате хотите получить? В каком формате вывод?

математически задача решается так:
секунд в минуте
минут в часе
часов в сутках
суток в неделе
недель в году (из расчета 365 суток)

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB