Почему в Python 2.6 нет set-литералов и пониманий или dict-пониманий?[закрыто]

StackOverflow https://stackoverflow.com/questions/345356

  •  19-08-2019
  •  | 
  •  

Вопрос

Python 2.6 был, по сути, ступенькой для упрощения перехода на Python 3.Многие функции, предназначенные для Python 3, были реализованы в версии 2.6, если они не нарушали обратную совместимость с синтаксисом и библиотеками классов.

Почему не были установлены литералы ({1, 2, 3}), установить понимания ({v for v in l}), или диктовать понимания ({k: v for k, v in d}) среди них?В частности, понимание диктанта было бы большим благом...Я обнаружил, что использую значительно более уродливые dict([(k, v) for k, v in d]) ужасно много в последнее время.

Есть ли что-то очевидное, чего мне не хватает, или это была просто функция, которая не попала в кадр?

Это было полезно?

Решение

Это не было сделано, потому что никто не нашел на это времени.Там месяцами вскрывались ошибки, и никто их не комментировал:

Так что, вероятно, это было недостаточно важно, чтобы кого-то это волновало.

Другие советы

Все это изменения синтаксиса / грамматики.Такие изменения традиционно вводятся сначала в версии Python x.y с from __future__ import … оператор, и реализован по крайней мере на Python x.(y + 1) версии.Такого перехода для этих изменений еще не произошло.

Технически, я ответил на ваше "почему".

Теперь, если вы имели в виду: “почему никто не нашел времени предложить, поддержать и внедрить что-то, что Я хотелось бы также иметь в 2.x, даже если они не знаю об этом с тех пор, как Я никогда не пытался предложить / поддержать перенос этих улучшений синтаксиса ни в comp.lang.python, ни в Python-Dev, ни Я никогда не пробовали даже прочитать PEPS?”, тогда ответ тоже кроется в вас, и вы можете предложить ответ сами.

HTH

Кстати, вам не следует использовать dict([(k,v) for k,v in d]) форме, но в dict((k,v) for k,v in d).Более эффективный.Зачем создавать промежуточный список?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top