Данный код создает словарь `a` с использованием списка из кортежей. Каждый кортеж представляет собой пару ключ-значение, где первый элемент кортежа - это ключ, а второй элемент - значение.
В данном случае список используется для создания словаря, потому что функция `dict()` в качестве аргумента принимает итерируемый объект, содержащий кортежи из двух элементов. Список является итерируемым объектом, поэтому он может быть использован для создания словаря с помощью функции `dict()`.
Список из кортежей использован потому, что кортежи являются неизменяемыми объектами, то есть их значения не могут быть изменены после создания. В контексте словаря это означает, что ключи в словаре должны быть уникальными и неизменными по своим значениям. Кортежи подходят для использования в словаре, так как в данном случае они выступают в роли ключей.
Словарь выбран, вероятно, потому что он позволяет быстро находить значения по ключу. В данном примере, мы можем получить значение по ключу, например, `a['Amanda']`, и получить результат 27. Если бы использовался список вместо словаря, пришлось бы выполнять поиск элемента в списке, что было бы менее эффективно.