Size: a a a

Сообщество Python Программистов

2021 February 16

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
def closest_zero(idx:int, lst: list):
   prev_nil = lst.index(0)
   next_nil = lst.index(0, idx)
   closest = min(prev_nil, next_nil, key=lambda n: abs(idx-n))
   return closest
Хотя не, это тоже не сработает
источник

IT

Ivan Tech Solution in Сообщество Python Программистов
peach lasagna
почему хауди хо так популярен?
хауди хо "популярен" имхо потому, что когда заходишь на какой нибудь степик, а первое занятие - там люди ведь все с разным уровнем понимания - и после вопроса что посмотреть на ТыТрубе - 50% (без преувеличения) радостно сообщают: Хауди Хо!
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
def closest_zero(idx: int, lst: list):
   lst_len = len(lst)
   max_shift = max(idx, lst_len-idx)
   for shift in range(max_shift):
       back_i = idx-shift
       forw_i = idx+shift
       for i in back_i, forw_i:
           if i not in range(lst_len):
               continue
           if not lst[i]:
               return i
   else:
       return None
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
def closest_zero(idx: int, lst: list):
   lst_len = len(lst)
   max_shift = max(idx, lst_len-idx)
   for shift in range(max_shift):
       back_i = idx-shift
       forw_i = idx+shift
       for i in back_i, forw_i:
           if i not in range(lst_len):
               continue
           if not lst[i]:
               return i
   else:
       return None
Какая же это жуткая херня
источник

J

JB in Сообщество Python Программистов
houses=[0, 5, 6, 2, 0, 4, 3, 1]
for i in range(len(houses)):
   if houses[i]!=0:
       b=[list(reversed(houses[:i + 1])), houses[i:]]
       left=b[0].index(0) if 0 in b[0] else len(houses)
       right=b[1].index(0) if 0 in b[1] else len(houses)
       houses[i]=min(left,right)
print(*houses)
источник

J

JB in Сообщество Python Программистов
вот так можно но я по времени не прохожу
источник

pl

peach lasagna in Сообщество Python Программистов
Python3.9 и python3.8 оказывается по разному считают вес обьектов.

Кто знает почему так?
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
JB
вот так можно но я по времени не прохожу
Выше я функцию набросал)
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
JB
houses=[0, 5, 6, 2, 0, 4, 3, 1]
for i in range(len(houses)):
   if houses[i]!=0:
       b=[list(reversed(houses[:i + 1])), houses[i:]]
       left=b[0].index(0) if 0 in b[0] else len(houses)
       right=b[1].index(0) if 0 in b[1] else len(houses)
       houses[i]=min(left,right)
print(*houses)
houses=[0, 5, 6, 2, 0, 4, 3, 1]
counts = []
rev_counts = []
count = rev_count = 0
for i in range(len(houses)):
   count = count+1 if houses[i] else 0
   counts.append(count)
   rev_count = rev_count+1 if houses[-i-1] else 0
   rev_counts.append(rev_count)
result = [min(back, forw) for back, forw in zip(counts, reversed(rev_counts))]
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
houses=[0, 5, 6, 2, 0, 4, 3, 1]
counts = []
rev_counts = []
count = rev_count = 0
for i in range(len(houses)):
   count = count+1 if houses[i] else 0
   counts.append(count)
   rev_count = rev_count+1 if houses[-i-1] else 0
   rev_counts.append(rev_count)
result = [min(back, forw) for back, forw in zip(counts, reversed(rev_counts))]
Малях поправлено
источник

J

JB in Сообщество Python Программистов
Ну не совсем
источник

J

JB in Сообщество Python Программистов
В общем надо проходит слева направо и обратно, а потом сравнивать индексы.
источник

IT

Ivan Tech Solution in Сообщество Python Программистов
peach lasagna
Python3.9 и python3.8 оказывается по разному считают вес обьектов.

Кто знает почему так?
кстати, на 3.7.2 тоже 104 получается.
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
JB
В общем надо проходит слева направо и обратно, а потом сравнивать индексы.
Я именно это и делаю
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Только в один проход
источник

J

JB in Сообщество Python Программистов
Она отрабатывает неправильно
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
JB
Она отрабатывает неправильно
И я ещё раз поправил)
источник

J

JB in Сообщество Python Программистов
вывод [0, 1, 2, 1, 0, 1, 1]
houses[0, 5, 6, 2, 0, 4, 3]
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
JB
вывод [0, 1, 2, 1, 0, 1, 1]
houses[0, 5, 6, 2, 0, 4, 3]
А, ну да
Фокус понял
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Тут чуть угарнее ещё надо
источник