Какая есть программа на python для обмена первым и последним элементом словаря?

как можно поменять местами первый и последний элемент в словаре. Я пытался использовать функцию swap, но она не сработала для меня, что я могу использовать для достижения желаемого результата, пожалуйста, ответьте.

Вот один из способов сделать это, я уверен, что есть более простой способ, но этот метод должен работать

# Example dictionary
test_dict = {'one': 1, 'two': 2, 'three': 3}

# initializing swap indices (-1 represents the last element)
i, j = 0, -1

# conversion to tuples
tups = list(test_dict.items())

# swapping by indices
tups[i], tups[j] = tups[j], tups[i]

# converting back
res = dict(tups)
print(res)

Возвращается...

{'three': 3, 'two': 2, 'one': 1}

Другой способ заключается в использовании OrderedDict и его эксклюзивной функции move_to_end(), которая позволяет нам эффективно поменять местами первый и последний элементы нашего dict:

from collections import OrderedDict

dct = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
odct = OrderedDict({'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5})
odct.move_to_end(list(dct.keys())[0])
odct.move_to_end(list(dct.keys())[-1], last=False)
print(dct)
print(dict(odct))

Выход:

{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
{'five': 5, 'two': 2, 'three': 3, 'four': 4, 'one': 1}

Неясно, хотели ли вы поменять местами последовательность самого словаря или только значения.

# dictionary value swap
test_dict = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
test_dict['one'], test_dict['five']= test_dict['five'], test_dict['one']
print (test_dict)
Output:  {'one': 5, 'two': 2, 'three': 3, 'four': 4, 'five': 1}

Вы также можете извлечь первое и последнее значения (или любое значение), используя ключи.

test_dict = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
mylist = list(test_dict.keys())
mylist[0],mylist[-1]=mylist[-1],mylist[0]
print (mylist)
Output:  ['five', 'two', 'three', 'four', 'one']

result_1, result_2 = test_dict[mylist[0]], test_dict[mylist[-1]] 
print (result_1, "Key in list swapped ", result_2)
Output:  5 Key in list swapped 1

print ("test_dict is unchange:", test_dict)
Output:  test_dict is unchange: {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}
Вернуться на верх