1
votes

Comment trouver des valeurs spécifiques dans un dictionnaire pour des titres répétés du même nom?

J'ai créé un dictionnaire nommé "city_metrics" qui contient des en-têtes tels que Ville, Pays, Population, Région. Dans mon dictionnaire, il y a 3 villes, 3 populations et 3 sont.

print city_metrics[0]['Population']

print city_metrics[1]['Population']

print city_metrics[2]['Population']

print city_metrics[3[['Population']

Comment puis-je lister uniquement la population de ce dictionnaire? Existe-t-il une approche différente en plus de taper toutes ces lignes?

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}]


2 commentaires

ceci -> docs.python.org/3/tutorial/controlflow. html # for-statements est un excellent point de départ


city_matrics n'est pas un dictionnaire. C'est une liste de dictionnaires, ce qui est une bête complètement différente.


3 Réponses :


1
votes

Vous pouvez créer une liste de populations en procédant comme suit.

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.']

Vous pouvez également créer une boucle for dans laquelle vous imprimez le nom de la ville et le population.

for city in city_metrics:
    print(city['Population'])

Vous pouvez également mettre en forme votre réponse de manière logique, par exemple en imprimant le nom de la ville et la population.

populations = [city['Population'] for city in city_metrics]


0 commentaires

1
votes

Vous parcourez votre liste de cette façon:

for city in cities:
    print(city, cities[city]['Population'])

Une autre approche serait un dictionnaire de dictionnaires:

print(cities['Montreal']['Population'])

En utilisant ce type de structure, vous pouvez faire des choses comme ceci:

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}
}

Ou parcourir des villes comme ceci:

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'])


0 commentaires

1
votes
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"])
this should do it for you. if you need to print keys. just pass dictionary .items

0 commentaires