Remove и delete в чем

Difference between «delete» and «remove» [closed]

I am writing a mobile application that will, as a part of its functionality, display a list of recorded thoughts. Now I am deciding the textual content of the menus and that left me thinking whether there is a logical difference between words remove and delete. Which one is more appropriate when speaking about taking an item off the list? I guess remove is, but why?

3 Answers 3

Delete and remove are defined quite similarly, but the main difference between them is that delete means erase (i.e. rendered nonexistent or nonrecoverable), while remove connotes take away and set aside (but kept in existence).

In your example, if the item is existent after the removal, just say remove, but if it ceases to exist, say delete.

As a side note: delete is sometimes used of computer files to mean move to trash/recycle bin (hence it is still recoverable), but that’s not a standard meaning outside of that context.

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

They are very similar, but the way I would make the distinction here is based on what the action does, and on the item being removed/deleted from the list.

If the item will continue to exist outside the list, I would recommend «remove», as it is being removed from the list, but the item itself is not deleted.

If the item will no longer exist, then «remove» and «delete» are essentially equivalent, although «delete» may be a bit clearer, since the user is deleting the item.

Источник

Именование переменных: «removeSmth» vs «deleteSmth»?

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Глобальной разницы нет, оба слова означают «удалять». Но «remove» имеет альтернативный перевод «убирать», «снимать» и по сути имеет более мягкое значение, нежели «delete» — «стирать», «вычеркивать», «исключать».

Ну и remove более формальное слово.

Ну find я вижу как поиск с заранее известным положительным результатом, а search это есть сам процесс поиска, который может и не привести к результату. Что же касается remove и delete, то тут я вижу в первом случае устранение объекта при том, что этот объект можно вызвать повторно, а delete — удаление объекта без возможности повторного его вызова.

Это я с точки зрения лингвистики и опыта подхожу, кодеры могут со мной не согласиться.

Здесь, конечно, да, имеются в виду функции. «Именование переменных» — это я так подумал что логично было бы назвать общий вопрос, что ли 🙂

PS кроме того, во многих языках переменная может быть и функцией. В частности, JS, на котором я обычно пишу. Видимо, сказалась привычка 🙂

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

> Скорее всего вы имели ввиду имена методов.

Да, про это я написал чуть выше.

Вообще, здесь, похоже, очень размытая грань между remove и delete 🙂 (что если элемент списка — цельный объект? 😉 )

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Я имел в виду вот что. Хорошее название для метода становится в некотором смысле дополнительной документацией.

Про функцию findSmth( what ) я предполагаю, что она вернёт мне найденный объект. Возможно, только первый найденный. Ещё я думаю, что в случае неудачи, она вернёт null или false.

От функции searchForSmth( criteria ) я буду ожидать массив (список) с результатом поиска. В случае если ничего не найдено, я думаю, такая функция должна будет вернуть пустой массив. Но не false.

Это первый шаг. Когда я вижу метод объекта с некоторым названием — даже не читая коммента (не говоря уже о документации) я могу очень быстро этот объект затестить. Если мои ожидания совпадают с действительностью — это значительно ускорит разработку.

В общем, идея состоит в том, чтоб именовать объект (функцию) так, чтоб разработчик мог получить полезную информацию. Наиболее полно мой вопрос, наверное, звучит как «Можно ли выбирая между remove… и delete… повлиять на количество полезной информации, сообщаемой потенциальному будущему хакеру моего кода, как это есть в случае с find и search?» 🙂

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

IMHO, вообще, если мы посмотрим на привязки английских слов к английским, а русских к русским, то разницу увидим. Удалять — это не уничтожать, не освобождать, не разрушать. В русском удалять — это удалять, отодвигать далеко. Remove, в принципе, немного соответствует слову удалять. Потому что есть такие термины removable media, или ещё что-то. Но тут нет оттенка: разрушаемый носитель. Он именно удаляемый, вынимаемый всё такое.

Так что, remove и удалить — это нечто вроде ‘убрать с глаз долой’. Поэтому, как бы и команда rm в UNIX — это же не стирание файла, а стирание ссылки на него из директории, типа — не хочу тебя видеть.

Delete — это другое. Это некая противоположность к let. И как раз носит смысл: разрушить, то что возникло, или стереть с доски, вычеркнуть из текста. Всё такое.

Опять же find и search они тоже не переводятся, как поиск, если искать смысловые привязки в английском. search — это нечто связанное с изучением, потому что research, или там научный поиск, или поиск решения. Это нечто такое, продолжающееся, не обязательно с нужным результатом. А find (второе значение основать) это нечто такое, связанное с получением результата, с обретением чего-то такого.

Вот. Можете поприменять это к программам. Мой опыт: не использую remove и delete. Использую такие выражения: form и drop. Первое от сформировать, что более соответсвует по смыслу созданию объекта в памяти, a drop — это выбросить, тоже вполне понятно, без всяких там тонкостей, да и смыслу более соответствует. Когда мы избавляемся от объекта в программе, то мы же не стираем его, не разрушаем память, в которой он находится, мы как бы просто забываем о нём, выбрасываем ссылку. Да и писать короче и ровнее: )

Ну. И в программах и в своих структурах данных я всегда делаю find в структурах данных, а search — это скорее как существительное, и прилагательное, когда надо назвать нечто поисковое: searchbot или там linesearch (при распознавании образов).

Источник

Разница между del, remove и pop в списках

Есть ли разница между тремя вышеупомянутыми способами удаления элемента из списка?

10 ответов

del удаляет элемент по определенному индексу:

pop удаляет элемент по определенному индексу и возвращает его.

Их режимы ошибок тоже разные:

Многие лучшие объяснения здесь, но я постараюсь сделать все возможное, чтобы упростить еще.

remove (): Используется для удаления первого вхождения элемента

remove(i) => первое вхождение значения i

pop (): Используется для удаления элемента, если:

pop() => из конца списка

ВНИМАНИЕ: впереди опасный метод

Следите за двумя различными синтаксисами для одного и того же метода: [] и (). Он обладает способностью:

del a[index] => используется для удаления индекса и связанного с ним значения точно так же, как pop.

2. Удалить значения в диапазоне [индекс 1: индекс N]

del a[0:3] => несколько значений в диапазоне

3.Последний, но не список, чтобы удалить весь список за один раз

del (a) => как сказано выше.

Надеюсь, что это проясняет путаницу, если таковые имеются.

В то время как pop и delete оба принимают индексы, чтобы удалить элемент, как указано в комментариях выше. Ключевым отличием является сложность времени для них. Временная сложность для pop () без индекса равна O (1), но это не тот же случай для удаления последнего элемента.

Если ваш вариант использования всегда заключается в удалении последнего элемента, всегда лучше использовать pop (), а не delete (). Для получения более подробной информации о временных сложностях вы можете обратиться к https: / /www.ics.uci.edu/

Удалить в основном работает на стоимость. Удалить и вспомнить работу над индексом

Удалить в основном удаляет первое совпадающее значение. Удалить удаляет элемент из определенного индекса. Pop обычно берет индекс и возвращает значение по этому индексу. В следующий раз, когда вы распечатаете список, значение не появится.

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Уже неплохо ответили другие. Это с моего конца 🙂

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Очевидно, pop является единственным, который возвращает значение, а remove является единственным, который ищет объект, в то время как del ограничивается простым удалением.

Вы также можете использовать команду remove для удаления значения по индексу.

Тогда n будет ссылаться на [1, 5]

Операции remove со списком присваивается значение удалять. Он ищет в списке, чтобы найти элемент с этим значением, и удаляет первый соответствующий элемент, который он находит. Ошибка при отсутствии соответствующего элемента вызывает ValueError,

del можно использовать для удаления всего список. Если у вас есть определенный элемент списка в качестве аргумента для del (например, listname [7] для конкретной ссылки на восьмой элемент в списке), он просто удалит этот элемент. Можно даже удалить «ломтик» из списка. Ошибка, если индекс выходит за пределы допустимого диапазона, вызывает IndexError,

Обычно pop используется для удаления последней элемент из списка, как вы используете список в качестве стека. В отличие от del, pop возвращает значение, которое он вытолкнул из списка. При желании вы можете задать индексное значение для pop и pop, отличное от конца списка (например, listname.pop (0) удалит первый элемент из списка и вернет этот первый элемент в качестве результата). Вы можете использовать это, чтобы список вел себя как очередь, но есть доступные библиотечные процедуры, которые могут обеспечить работу очереди с большей производительностью, чем pop (0). Ошибка, если индекс выходит за пределы допустимого диапазона, вызывает IndexError,

См. collection.deque для получения дополнительной информации.

При удалении индекса i из списка n элементов вычислительные сложности этих методов

Поскольку никто другой не упомянул об этом, обратите внимание, что del (в отличие от pop ) позволяет удалять диапазон индексов из-за нарезки списка:

Источник

Remove и delete в чем

Очень удобный класс для работы со списком объектов. Вот только не до конца понятный. Справка Delphi вводит в заблуждение, возникают вопросы. Выдержка из Help‘а:

Removes a specified object from the list and (if OwnsObjects is true) frees the object.

Delphi syntax:
function Remove(AObject: TObject): Integer;

C++ syntax:
HIDESBASE int __fastcall Remove(System::TObject* AObject);

Description
Call Remove to delete a specific object from the list when its index is unknown. The value returned is the index of the object in the Items array before it was removed. If the specified object is not found on the list, Remove returns –1. If OwnsObjects is true, Remove frees the object in addition to removing it from the list.

After an object is deleted, all the objects that follow it are moved up in index position and Count is decremented. If an object appears more than once on the list, Remove deletes only the first appearance. Hence, if OwnsObjects is true, removing an object that appears more than once results in empty object references later in the list.

To use an index position (rather than an object reference) to specify the object to be removed, call Delete.

To remove an object from the list without freeing it, call Extract.

Removes the item at the position given by the Index parameter.

Delphi syntax:
procedure Delete(Index: Integer);

C++ syntax:
void __fastcall Delete(int Index);

Description
Call Delete to remove the item at a specific position from the list. The index is zero-based, so the first item has an Index value of 0, the second item has an Index value of 1, and so on. Calling Delete moves up all items in the Items array that follow the deleted item, and reduces the Count.

To remove the reference to an item without deleting the entry from the Items array and changing the Count, set the Items property for Index to nil (Delphi) or NULL (C++).

Note: Delete does not free any memory associated with the item. To free the memory that was used to store a deleted item, set the Capacity property.

Я обратился к этой теме по простой причине: у меня были проблемы с этими двумя методами, я не знал, какой из них использовать в определенных случаях.

Итак, что мы видим в исходниках метода Remove:

То есть вызывается одноименный метод предка TList:

Здесь, как мы видим, вызывается метод Delete, из чего можно заключить, что никакой разницы между методами Remove и Delete (кроме типа аргумента) нет. Но мы не будем останавливаться на этом, а пойдем дальше и посмотрим устройство метода TList.Delete:

Тут вызывается метод Notify, в котором, как мы сейчас убедимся, кроется вся хитрость класса TObjectList:

Так, мы убедились, что если свойство OwnsObjects объекта класса TObjectList установлено в True, то оба метода: и Delete, и Remove приводят к освобождению объекта, удаляемого из списка. Если OwnsObject = False, ни один из них не освобождает объект. По крайней мере я пришел к этому выводу именно так, через изучение исходников.

Для удаления объекта из списка без его освобождения необходимо использовать метод Extract.

Позже я нашел в справке подтверждение своих мыслей:

TObjectList maintains a list of (owned) objects.

Источник

Petr Kuderov добавил заметку 5 лет назад

Всем привет! Для меня давно вопрос висел в воздухе, но только сейчас решил чуть-чуть поразбираться и заодно поделиться с вами.

Итак, меня как программиста интересует разница между словами DELETE и REMOVE, т.к. это очень популярные слова в нашей области.

На одном из моих любимых ресурсов по объяснению смысла слов (или подборе нужного слова) в контексте IT я нашел следующий ответ:

Delete and remove are defined quite similarly, but the main difference between them is that delete means erase (i.e. rendered nonexistent or nonrecoverable), while remove connotes take away and set aside (but kept in existence).

In your example, if the item is existent after the removal, just say remove, but if it ceases to exist, say delete.

As a side note: delete is sometimes used of computer files to mean move to trash/recycle bin (hence it is still recoverable), but that’s not a standard meaning outside of that context.

Обсуждение ( 3 )

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Ну, Delete означает удаление или стирание, в то время как remote означает перемотка или возвращение к чему-то скажем к другой странице или же переключение, например переключатель телевизора называют REMOTE CONTROL.

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Remove и delete в чем. Смотреть фото Remove и delete в чем. Смотреть картинку Remove и delete в чем. Картинка про Remove и delete в чем. Фото Remove и delete в чем

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *