Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 May 10

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
просто исходный код список итерировал
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
кстати
я ошибку сделал
серьезную
ток щас понял
нельзя изменять итерируемый объект
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
for c, value in enumerate(my_list, 1):
   if not c % 5:
        my_list.pop(c)
print(sorted(my_list))
так что как тут нельзя делать
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
лучше как тут
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
тут, кстати, вместо генератора списков можно использовать list(range(size))
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Yaris
a = [int(s) for s in input().split()]
for c, value in enumerate(a, 1):
   if not c % 5:
       a.pop(c)
print(sorted(a))
Даю список: 12 4 8 75 64 23 89 0 75 0 83 45 23
Мне выдает: [0, 0, 4, 8, 12, 23, 64, 75, 75, 83, 89]
А должно выдавать: [0, 4, 8, 12, 23, 23, 45, 75, 75, 83, 89]
Понял почему - там сдвиг идет, енумерате по циклу идет и когда поп делает - то элементы сдвигаются
источник

Е

Евгений in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Ага, Кирилл и Славик встретились... надо читать в реальном времени, а то к вечеру уже будет не разгрести
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Дебаггер великая вещь
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
AА AА
Понял почему - там сдвиг идет, енумерате по циклу идет и когда поп делает - то элементы сдвигаются
да
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
поэтому нельзя изменять итерируемый объект)
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
AА AА
Дебаггер великая вещь
смеётся тот у кого есть дебаггер
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
это undefined behavior
на самом деле
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кайф
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
итераторы могут по-разному работать
и вообще иметь, например сишную реализацию
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
то есть мы бежим по массиву и меняем его в цикле, соответственно индексы сдвигаются и не пойми чо происходит
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
может вообще дичь начать происходить, если меняется итерируемый объект
там могут вообще появиться числа которых там не было
или упасть может
короче UB
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
можно в отдельный список поместить индексы элементов которые нужно удалить и потом удалять, но это какой-то костыль
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
можно в отдельный список поместить индексы элементов которые нужно удалить и потом удалять, но это какой-то костыль
да можно просто как я в бенчмарке сделал
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
создали список, взяли размер от него и по индексам пробегаем
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
если задача каждый 5 удалить - можно просто добавить step=5
и удалять
но лень было чет это писать в ответ на вопрос)
источник