Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #99332

Re: Finding scores from a list

From Peter Otten <__peter__@web.de>
Newsgroups comp.lang.python
Subject Re: Finding scores from a list
Date 2015-11-24 14:50 +0100
Organization None
Message-ID <mailman.115.1448373011.2291.python-list@python.org> (permalink)
References <277843f7-c898-4378-85ea-841b09a289e3@googlegroups.com>

Show all headers | View raw


Cai Gengyang wrote:

> 
> results = [
> {"id": 1, "name": "ensheng", "score": 10},
> {"id": 2, "name": "gengyang", "score": 12},
> {"id": 3, "name": "jordan", "score": 5},
> ]
> 
> I want to find gengyang's score. This is what I tried :
> 
>>>> print((results["gengyang"])["score"])
> 
> but I got an error message instead :
> 
> Traceback (most recent call last):
>   File "<pyshell#62>", line 1, in <module>
>     print((results["gengyang"])["score"])
> TypeError: list indices must be integers, not str
> 
> Any ideas how to solve this? Thank you ..

As the outer container is a list you have to provide an index:

results[1]["score"]

You can also search for a matching item:

for result in results:
   if result["name"] == "gengyang":
       print(result["score"])

but when the list grows performance will suffer.

General note: you will have a better experience learning Python when you 
read some introductory text first, to get the big picture.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Finding scores from a list Cai Gengyang <gengyangcai@gmail.com> - 2015-11-24 05:25 -0800
  Re: Finding scores from a list Mark Lawrence <breamoreboy@yahoo.co.uk> - 2015-11-24 13:44 +0000
  Re: Finding scores from a list Peter Otten <__peter__@web.de> - 2015-11-24 14:50 +0100
  Re: Finding scores from a list BartC <bc@freeuk.com> - 2015-11-24 14:12 +0000
  Re: Finding scores from a list John Gordon <gordon@panix.com> - 2015-11-24 17:47 +0000

csiph-web