Какая есть программа на 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}