Я прокомментировал список, содержащий нечетные числа, и добавил 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.')
Разница между []
и 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)
list