• Python говно Ещё что бесит в питоне — почему-то чтобы добавить элемент в множество надо вызвать метод add(), а чтобы в массив append(). (Или наоборот?) Зачем? Зачем они называются по-разному?
    И да, не пытайтесь передать в эти методы список элементов! Всё рухнет!

Replies (8)

  • @Shura, @Shura массив упорядочен, а для множества важна лишь принадлежность. Так что логично.

    не пытайтесь передать в эти методы список элементов!
    Список — это другой тип, как нужно догадаться что ты хочешь разобрать его на элементы?
  • @Anonymous, понятно, что один упорядочен, а другой нет. Непонятно зачем методы по-разному называются.
  • @Anonymous, Список — это другой тип, как нужно догадаться что ты хочешь разобрать его на элементы?Тогда какого хрена set() разбивает передаваемую строку на символы? Тут значит он может разобрать, а при add() нет? Почему?
  • @Shura, @Shura тонкие различия в значении слов, append предполагает добавление сверху или в конец, add добавление в.

    Тогда какого хрена set()
    может потому что set() на основе списка создает множество, а add() ждет добавление элемента некоторого типа в множество?

    Мне интересно, если питон бесит, то это в сравнении с какими языками. Мне кажется он наоборот вольный в работе с типами.
  • @Anonymous, не то, чтобы бесит, просто есть странности вот типа такой. Мне, как программисту, всё равно, добавляет он в конец или добавляет просто, я же знаю что у меня там за тип и знаю, что получу при добавлении элемента. Но вот выучить где там add, а где append — не могу и даже не хочу. Сравниваю с перлом, но там вообще нет множеств. Зато хотя бы join и split используются по-человечески.
  • @Anonymous, я согласен, что если бы у массива метод для добавления назывался бы push() — то вопросов нет, ясно, что добавляем в конец и потом можем делать pop() и получить наши элементы обратно в этом же порядке. Тут с множеством не спутаешь, поскольку множество так не работает. Но ведь нет метода push()! (а pop почему-то есть). Вместо push сделали безлики и ни о чём не говорящий append().

    При том что массив, что множество имеют одинаковый метод remove(). Это нормально?
  • @Shura, Да, нормально, потому что это семантически одинаковая операция
  • @Shura, Неправильно будет назвать опцию добавления в конец списка add, потому что в слове «add» нет значения «в конец»