Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 List of dictionaries: use key-value instead of index?
#1
If you have a list of dictionaries, and need any dictionary but do not know what index that dictionary is located at, then how can you instead use the key or key value pair to find that dictionary?

The dictionary needs to retrieve as it is within the list so that the key values can still be used the same ways. Or at least be changed back like that.

I feel like this is super simple to do but I'm new to Python and absolutely cannot figure this out nor find it anywhere. I've been looking for days.

Example:

[{'colorkey':'red', 'status':'on', 'registered':'yes'},{'colorkey':'blue', 'status':'off', 'registered':'no'},{'colorkey':green', 'status':'on', 'registered':'yes'}]
Assume there is no way to know what index each colorkey is located at, but you need to retrieve or get or return each dictionary that has a status on and registered yes. You need to find dictionaries not by using the index but by the colorkey key or key value pair.

How can this be done?


Edit:

Here is what should result from that example:

{'colorkey':'red', 'status':'on', 'registered':'yes'},{'colorkey':'green','status':'on','registered':'yes'}
Quote
#2
Loop through the list of dict's, checking if status is on and is registered is yes and add the ones that are to a new list.
Quote
#3
(Jun-02-2019, 06:23 PM)Yoriz Wrote: Loop through the list of dict's, checking if status is on and is registered is yes and add the ones that are to a new list.

I don't need that dictionary if it is on and registered.

If that dictionary say colorkey:red is both on and registered, then I need the dictionary in a second list of dictionaries, that also contains the key vale colorkey:red.


I am working with two lists of dictionaries. The first has the on and registered key values. The second does not.

If any dictionary in the second list is not on OR not registered, then I do not need it.

If any dictionary in the second list is BOTH on and registered, then I do need it.

So I need to loop through the first list of dictionaries to find all that are both on and registered... and then?
Quote
#4
(Jun-02-2019, 06:18 PM)dn237 Wrote: Assume there is no way to know what index each colorkey is located at, but you need to retrieve or get or return each dictionary that has a status on and registered yes. You need to find dictionaries not by using the index but by the colorkey key or key value pair.
I have soft deleted a response from this as this sounds like an assignment copied and paste here. Can you explain?
Quote
#5
colors = [
    {'colorkey': 'red', 'status': 'on', 'registered': 'yes'},
    {'colorkey': 'blue', 'status': 'off', 'registered': 'no'},
    {'colorkey': 'green', 'status': 'on', 'registered': 'yes'},
    ]

color_to_find = 'red'
for element in colors:
    # element is a dict
    color = element.get('colorcode')
    if color == color_to_find:
        # result found
        # stop the iteration if you want to have only one result.
        # otherwise you must walk through the complete list
        # if you break out of the lopp
        # you'll only get the first hit
        break
else:
    pass
    # result not found, for loop finished completely
My code examples are always for Python >=3.6.0
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Quote
#6
(Jun-02-2019, 10:18 PM)metulburr Wrote:
(Jun-02-2019, 06:18 PM)dn237 Wrote: Assume there is no way to know what index each colorkey is located at, but you need to retrieve or get or return each dictionary that has a status on and registered yes. You need to find dictionaries not by using the index but by the colorkey key or key value pair.
I have soft deleted a response from this as this sounds like an assignment copied and paste here. Can you explain?

I don't know what you mean by an assignment copied and pasted here, but if you mean a school assignment that seems to be going way beyond the needed purposes for admins and mods in forums, and to certainly be lowering the quality of the forum just as much as a lack of moderating would as well. I am not a student. If I was, I would have other resources to get help from and so probably wouldn't be here.

What I mean is this:

There is no way to use the index to refer to which dictionary in the list you want. Instead of using the index in the list, the colorkey key value pair has to be used.
Quote
#7
The way things are worded makes it look like homework, lots come here and try to get there homework done for them which does them no good as they don't learn anything.

If its not homework, you have not yet shown the code you need help with.
Are you after someone to do the code for you, if so this can be moved to the jobs section of the forum, otherwise please post a minimal code sample (in python code tags)
for the specific part your stuck on, explain what you expect to happen and what is actually happening and any errors received in error tags.
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Accessing values in list of dictionaries pythonnewbie138 2 71 Aug-02-2020, 05:02 PM
Last Post: pythonnewbie138
  Function to return list of all the INDEX values of a defined ndarray? pjfarley3 2 155 Jul-10-2020, 04:51 AM
Last Post: pjfarley3
  how does .join work with list and dictionaries gr3yali3n 7 282 Jul-07-2020, 09:36 PM
Last Post: bowlofred
  Find index value in List Martin2998 3 319 May-12-2020, 02:17 PM
Last Post: deanhystad
  Compare Two Lists and Replace Items In a List by Index nagymusic 2 383 May-10-2020, 05:28 AM
Last Post: deanhystad
  creating a list of dictionaries from API calls AndrewEnglsh101 5 345 Apr-03-2020, 02:21 PM
Last Post: AndrewEnglsh101
  How to find something in a list using its index rix 1 300 Dec-20-2019, 04:12 PM
Last Post: stullis
  item = index position - list of list RavCOder 9 708 Dec-02-2019, 05:24 PM
Last Post: ThomasL
  IndexError: List index out of range issue Adem 1 1,150 Nov-01-2019, 10:47 PM
Last Post: ichabod801
  IndexError: list index out of range bug? CaptainCsaba 4 2,304 Oct-18-2019, 12:38 PM
Last Post: CaptainCsaba

Forum Jump:


Users browsing this thread: 1 Guest(s)