После переключения скобок [] в список, будет ли это считаться тем же самым?

1

Я прокомментировал список, содержащий нечетные числа, и добавил my_odds = list (range (1, 60, 2)) print (my_odds). Мне было интересно, какая разница между списком и []? они технически одинаковы?

def first_code_from_headfirst():

   # odds = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55,
     #       57, 59]

    my_odds = list(range(1, 60, 2))
    print(my_odds)

    for el in range(5):
        right_this_minute = datetime.today().minute

        if right_this_minute in my_odds:
            print("this minute seems a little odd")

        else:
            print('not an odd minute.')
  • 0
    Да, здесь все точно так же.
  • 1
    если вы не переопределите переменную list
Показать ещё 5 комментариев
Теги:

1 ответ

1
Лучший ответ

Разница между [] и list заключается в том, что один является синтаксической конструкцией, а другой - вызовом функции. Что значит:

import dis

def func():
    a = []

dis.dis(func)

  1           0 BUILD_LIST               0
              3 STORE_FAST               0 (a)
              6 LOAD_CONST               0 (None)
              9 RETURN_VALUE  

в то время как:

def func():
    a = list()

dis.dis(func)

  1           0 LOAD_GLOBAL              0 (list)
              3 CALL_FUNCTION            0
              6 STORE_FAST               0 (a)
              9 LOAD_CONST               0 (None)
             12 RETURN_VALUE 

Таким образом, первое должно быть немного быстрее, поскольку ему не нужно искать глобальный list имен. (Это для CPython 2.7.10)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню