при итерации по dict.items()
он возвращает кортеж 2, поэтому при предоставлении двух переменных в цикле для него каждому элементу кортежа будет назначено значение.
Вот еще один пример, который поможет вампонять механику:
coordinates = [(1, 2, 3), (4, 5, 6)]
for x, y, z in coordinates:
print(x)
Редактировать: распаковку можно сделать еще сложнее. Например, предположим, что вы заинтересованы в том, чтобы собрать только первый и последний элемент в длинный список, вы можете действовать следующим образом:
long_list = 'This is a very long list to process'.split()
first_item, *_, last_item = long_list