У вас есть список кортежей.Обмен кортежей - это просто доступ к 1-му индексу в кортеже перед индексом 0 и сохранение выходных данных.
EL = (42.7358, -84.4844)
Det = (42.3831, -83.1022)
Kal = (42.2747, -85.5883)
AA = (42.2753, -83.7308)
Lan = (42.7092, -84.5539)
GR = (42.9614, -85.6558)
SSM = (46.4844, -84.3656)
cities = [EL, Det, Kal, AA, Lan, GR, SSM]
print(cities)
#Output:
[(42.7358, -84.4844),
(42.3831, -83.1022),
(42.2747, -85.5883),
(42.2753, -83.7308),
(42.7092, -84.5539),
(42.9614, -85.6558),
(46.4844, -84.3656)]
cities2 = [(x[1], x[0]) for x in cities]
print(cities)
#Output:
[(-84.4844, 42.7358),
(-83.1022, 42.3831),
(-85.5883, 42.2747),
(-83.7308, 42.2753),
(-84.5539, 42.7092),
(-85.6558, 42.9614),
(-84.3656, 46.4844)]
Что касается обращения к списку, существует много способов сторнировать список .некоторые создают копию, другие изменяют исходный список, например .reverse()
cities3 = cities[::-1] #created a reversed copy.
#Alternatively
cities3 = list(reversed(cities))
Наконец, однако, рекомендация.
Ваши списки кортежей как есть, не составляют многосмысл, но метки имени дают кортежи смысл.
Вы должны рассмотреть другую структуру данных для хранения этой информации, и словари в этом случае имеют смысл.Вы можете рассматривать их как сопоставления между key:value
парами.
EL = (42.7358, -84.4844)
Det = (42.3831, -83.1022)
Kal = (42.2747, -85.5883)
AA = (42.2753, -83.7308)
Lan = (42.7092, -84.5539)
GR = (42.9614, -85.6558)
SSM = (46.4844, -84.3656)
cities = [EL, Det, Kal, AA, Lan, GR, SSM]
city_names = ["EL", "Det", "Kal", "AA", "Lan", "GR", "SSM"]
cities_dict = dict(zip(city_names, cities))
Обратите внимание, что приведенный выше код эквивалентен следующему:
cities_dict = {"EL": EL,
"Det": Det,
"Kal": Kal,
"AA": AA,
"Lan": Lan,
"GR": GR,
"SSM": SSM
}
print(cities_dict)
#Output:
{'EL': (42.7358, -84.4844),
'Det': (42.3831, -83.1022),
'Kal': (42.2747, -85.5883),
'AA': (42.2753, -83.7308),
'Lan': (42.7092, -84.5539),
'GR': (42.9614, -85.6558),
'SSM': (46.4844, -84.3656)}
Теперь, предостережение, словари по своей природе неупорядочены,Если вам нужна структура данных, похожая на диктовку, которая поддерживает порядок, используйте OrderedDict .
from collections import OrderedDict
cities = [EL, Det, Kal, AA, Lan, GR, SSM]
city_names = ["EL", "Det", "Kal", "AA", "Lan", "GR", "SSM"]
cities_dict = OrderedDict(zip(city_names, cities))
print(cities_dict)
cities2_dict = OrderedDict((key, (v[1], v[0])) for (key,v) in cities_dict.items())
print(cities2_dict)
cities3_dict = OrderedDict(reversed(cities_dict.items()))
print(cities3_dict)