Отличие tuple от list

Частый вопрос на собеседованиях для Python-разработчиков: «Чем отличается tuple от list?» Давайте разбираться чем. О терминах в заметке: list — список, tuple — кортеж.

  1. Вы не можете добавлять элементы в кортеж, в список добавлять можно. В кортеже нет методов append и extend.
    1
    2
    3
    4
    
    l = [1, 2, 3]
    print(l)
    l.append(4)
    print(l)
    l = [1, 2, 3]
    print(l)
    l.append(4)
    print(l)
  2. Вы не можете удалять элементы из кортежа, из списка — можете. В кортеже нет методов pop и remove.
    1
    2
    3
    4
    
    l = [1, 2, 3]
    print(l)
    l.remove(2)
    print(l)
    l = [1, 2, 3]
    print(l)
    l.remove(2)
    print(l)
  3. И в кортеже и в списке вы можете использовать оператор in для проверки вхождения элемента в структуру данных.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    l = [1, 2, 3]
    t = (10, 20, 30)
    if 2 in l:
        print("Элемент присутствует в списке!")
    else:
        print("Элемент отсутствует в списке!")
     
    if 20 in t:
        print("Элемент присутствует в кортеже!")
    else:
        print("Элемент отсутствует в кортеже!")
    l = [1, 2, 3]
    t = (10, 20, 30)
    if 2 in l:
    	print("Элемент присутствует в списке!")
    else:
    	print("Элемент отсутствует в списке!")
    
    if 20 in t:
    	print("Элемент присутствует в кортеже!")
    else:
    	print("Элемент отсутствует в кортеже!")
  4. Некоторые кортежи могут быть использованы в качестве ключей в словарях, при условии, что элементы кортежа — это неизменяемые типы, такие как числа, строки, другие кортежи. Cписки в качестве ключей не могут использоваться.
    1
    2
    3
    4
    
    t = (1, 2, 3)
    d = {t : 1, 2 : "string", 3 : 30}
    for x, y in d.items():
        print("Key: {}, Value: {}".format(x, y))
    t = (1, 2, 3)
    d = {t : 1, 2 : "string", 3 : 30}
    for x, y in d.items():
    	print("Key: {}, Value: {}".format(x, y))
Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *