Home > Enterprise >  Get dict inside a list with value without for loop
Get dict inside a list with value without for loop

Time:03-31

I have this dict:

data_flights = {
  "prices": [
    { "city": "Paris", "iataCode": "AAA", "lowestPrice": 54, "id": 2 },
    { "city": "Berlin", "iataCode": "BBB", "lowestPrice": 42, "id": 3 },
    { "city": "Tokyo", "iataCode": "CCC", "lowestPrice": 485, "id": 4 },
    { "city": "Sydney", "iataCode": "DDD", "lowestPrice": 551, "id": 5 },
  ],
  "date": "31/03/2022"
}

Can I acess a dict using a key value from one of the dics, without using for loop? something like this:

data_flights["prices"]["city" == "Berlin"]

CodePudding user response:

You can use list comprehension

x = [a for a in data_flights["prices"] if a["city"] == "Berlin"]
>>> x
[{'city': 'Berlin', 'iataCode': 'BBB', 'lowestPrice': 42, 'id': 3}]

CodePudding user response:

You can achieve this by either using a comprehension or the filter built in.

comprehension:

[e for e in d['prices'] if e['city'] == 'Berlin']

filter:

list(filter(lambda e: e['city'] == 'Berlin', d['prices']))

Both would result in:

[{'city': 'Berlin', 'iataCode': 'BBB', 'lowestPrice': 42, 'id': 3}]
  • Related