Почему [] быстрее, чем list ()?

Я недавно сравнил скорость обработки[] а такжеlist() и был удивлен, обнаружив, что[] работаетболее чем в три раза быстрее чемlist(), Я провел тот же тест с{} а такжеdict() и результаты были практически идентичны:[] а также{} оба заняли около 0,128 сек / миллион циклов, в то время какlist() а такжеdict() занимает примерно 0,428 сек / миллион циклов каждый.

Почему это? Делать[] а также{} (и, вероятно,() а также''тоже) немедленно вернуть копии некоторых пустых литералов, в то время как их явно названные аналогиlist(), dict(), tuple(), str()) полностью заниматься созданием объекта, независимо от того, есть ли у него элементы?

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

Я получил результаты по времени, позвонив по телефонуtimeit.timeit("[]") а такжеtimeit.timeit("list()"), а такжеtimeit.timeit("{}") а такжеtimeit.timeit("dict()"), чтобы сравнить списки и словари, соответственно. Я использую Python 2.7.9.

Я недавно обнаружилПочему если True медленнее, чем если 1?«Это сравнивает производительностьif True вif 1 и, кажется, затрагивает похожий сценарий буквального против глобального; возможно, это стоит рассмотреть.

Ответы на вопрос(1)

Ваш ответ на вопрос