#python #jupyter-notebook
#python #jupyter-notebook
Вопрос:
Я создал словарь с именем «city_metrics», который содержит такие заголовки, как Город, Страна, Население, Площадь. В моем словаре есть 3 города, 3 Населения и 3 Являются.
city_metrics =
[{'City': 'Santiago',
'Country': 'Dominican Republic',
'Population': 900000,
'Area': 4758},
{'City': 'Montreal',
'Country': 'Canada',
'Population': 345000,
'Area': 2731571},
{'City': 'Seoul',
'Country': 'South Korea',
'Population': 234540,
'Area': 3454},
{'City': 'Marakesh',
'Country': 'Morocco',
'Population': 928850,
'Area': 200}]
Как я могу перечислить только совокупность из этого словаря? Есть ли другой подход, помимо ввода всех этих строк?
print city_metrics[0]['Population']
print city_metrics[1]['Population']
print city_metrics[2]['Population']
print city_metrics[3[['Population']
Комментарии:
1. это -> docs.python.org/3/tutorial/controlflow.html#for-statements — отличное место для начала
2.
city_matrics
это не словарь. Это список словарей, который представляет собой совершенно другого зверя.
Ответ №1:
city_metrics = [
{'City': 'Santiago', 'Country': 'Dominican Republic', 'Population': 900000, 'Area': 4758},
{'City': 'Montreal', 'Country': 'Canada', 'Population': 345000, 'Area': 2731571},
{'City': 'Seoul', 'Country': 'South Korea', 'Population': 234540, 'Area': 3454},
{'City': 'Marakesh', 'Country': 'Morocco', 'Population': 928850, 'Area': 200}
]
for i in city_metrics:
print(i['City'],i["Population"])
это должно сделать это за вас. если вам нужно напечатать ключи. просто передайте dictionary .items
Ответ №2:
Вы перебираете свой список таким образом:
metrics = [
{'City': 'Santiago', 'Country': 'Dominican Republic', 'Population': 900000, 'Area': 4758},
{'City': 'Montreal', 'Country': 'Canada', 'Population': 345000, 'Area': 2731571},
{'City': 'Seoul', 'Country': 'South Korea', 'Population': 234540, 'Area': 3454},
{'City': 'Marakesh', 'Country': 'Morocco', 'Population': 928850, 'Area': 200}
]
for metric in metrics:
print(metric['City'], metric['Population'])
Другим подходом был бы словарь словарей:
cities = {
'Santiago': {'Country': 'Dominican Republic', 'Population': 900000, 'Area': 4758},
'Montreal': {'Country': 'Canada', 'Population': 345000, 'Area': 2731571},
'Seoul': {'Country': 'South Korea', 'Population': 234540, 'Area': 3454},
'Marakesh': {'Country': 'Morocco', 'Population': 928850, 'Area': 200}
}
Используя такую структуру, вы могли бы делать такие вещи, как это:
print(cities['Montreal']['Population'])
Или выполнить итерацию по городам, подобным этому:
for city in cities:
print(city, cities[city]['Population'])
Ответ №3:
Вы можете создать список совокупностей, выполнив следующее.
populations = [city['Population'] for city in city_metrics]
В качестве альтернативы вы можете сделать for loop
, в котором вы печатаете название города и население.
for city in city_metrics:
print(city['Population'])
Вы также можете отформатировать свой ответ таким образом, чтобы это имело смысл, например, напечатав название города и население.
cities_and_pops = [f"The population of {city['City']} is {city['Population']}." for city in city_metrics]
cities_and_pops
>>>['The population of Santiago is 900000.',
'The population of Montreal is 345000.',
'The population of Seoul is 234540.',
'The population of Marakesh is 928850.']