class_docstr: Evolution records as a chronological list of dictionaries.
  
  Data can be retrieved via the :meth:`select` method given the appropriate
  names.
  
  The :class:`Logbook` class may also contain other logbooks referred to
  as chapters. Chapters are used to store information associated to a
  specific part of the evolution. For example when computing statistics
  on different components of individuals (namely :class:`MultiStatistics`),
  chapters can be used to distinguish the average fitness and the average
  size.
class_docstr_tok: ["Evolution","records","as","a","chronological","list","of","dictionaries",".","Data","can","be","retrieved","via","the",":","meth",":","`","select","`","method","given","the","appropriate","names",".","The",":","class",":","`","Logbook","`","class","may","also","contain","other","logbooks","referred","to","as","chapters",".","Chapters","are","used","to","store","information","associated","to","a","specific","part","of","the","evolution",".","For","example","when","computing","statistics","on","different","components","of","individuals","(","namely",":","class",":","`","MultiStatistics","`",")",",","chapters","can","be","used","to","distinguish","the","average","fitness","and","the","average","size","."]
docstr: Return a list of values associated to the *names* provided
  in argument in each dictionary of the Statistics object list.
  One list per name is returned in order.
  ::
  
      >>> log = Logbook()
      >>> log.record(gen=0, mean=5.4, max=10.0)
      >>> log.record(gen=1, mean=9.4, max=15.0)
      >>> log.select("mean")
      [5.4, 9.4]
      >>> log.select("gen", "max")
      ([0, 1], [10.0, 15.0])
  
  With a :class:`MultiStatistics` object, the statistics for each
  measurement can be retrieved using the :data:`chapters` member :
  ::
  
      >>> log = Logbook()
      >>> log.record(**{'gen': 0, 'fit': {'mean': 0.8, 'max': 1.5},
      ... 'size': {'mean': 25.4, 'max': 67}})
      >>> log.record(**{'gen': 1, 'fit': {'mean': 0.95, 'max': 1.7},
      ... 'size': {'mean': 28.1, 'max': 71}})
      >>> log.chapters['size'].select("mean")
      [25.4, 28.1]
      >>> log.chapters['fit'].select("gen", "max")
      ([0, 1], [1.5, 1.7])
docstr_tok: ["Return","a","list","of","values","associated","to","the","*","names","*","provided","in","argument","in","each","dictionary","of","the","Statistics","object","list",".","One","list","per","name","is","returned","in","order",".",":",":",">",">",">","log","=","Logbook","(",")",">",">",">","log.record","(","gen=0",",","mean=5.4",",","max=10.0",")",">",">",">","log.record","(","gen=1",",","mean=9.4",",","max=15.0",")",">",">",">","log.select","(","``","mean","''",")","[","5.4",",","9.4","]",">",">",">","log.select","(","``","gen","''",",","``","max","''",")","(","[","0",",","1","]",",","[","10.0",",","15.0","]",")","With","a",":","class",":","`","MultiStatistics","`","object",",","the","statistics","for","each","measurement","can","be","retrieved","using","the",":","data",":","`","chapters","`","member",":",":",":",">",">",">","log","=","Logbook","(",")",">",">",">","log.record","(","*","*","{","'gen","'",":","0",",","'fit","'",":","{","'mean","'",":","0.8",",","'max","'",":","1.5","}",",","...","'size","'",":","{","'mean","'",":","25.4",",","'max","'",":","67","}","}",")",">",">",">","log.record","(","*","*","{","'gen","'",":","1",",","'fit","'",":","{","'mean","'",":","0.95",",","'max","'",":","1.7","}",",","...","'size","'",":","{","'mean","'",":","28.1",",","'max","'",":","71","}","}",")",">",">",">","log.chapters","[","'size","'","]",".select","(","``","mean","''",")","[","25.4",",","28.1","]",">",">",">","log.chapters","[","'fit","'","]",".select","(","``","gen","''",",","``","max","''",")","(","[","0",",","1","]",",","[","1.5",",","1.7","]",")"]
code: def select(self, *names):
      """Return a list of values associated to the *names* provided
      in argument in each dictionary of the Statistics object list.
      One list per name is returned in order.
      ::
  
          >>> log = Logbook()
          >>> log.record(gen=0, mean=5.4, max=10.0)
          >>> log.record(gen=1, mean=9.4, max=15.0)
          >>> log.select("mean")
          [5.4, 9.4]
          >>> log.select("gen", "max")
          ([0, 1], [10.0, 15.0])
  
      With a :class:`MultiStatistics` object, the statistics for each
      measurement can be retrieved using the :data:`chapters` member :
      ::
  
          >>> log = Logbook()
          >>> log.record(**{'gen': 0, 'fit': {'mean': 0.8, 'max': 1.5},
          ... 'size': {'mean': 25.4, 'max': 67}})
          >>> log.record(**{'gen': 1, 'fit': {'mean': 0.95, 'max': 1.7},
          ... 'size': {'mean': 28.1, 'max': 71}})
          >>> log.chapters['size'].select("mean")
          [25.4, 28.1]
          >>> log.chapters['fit'].select("gen", "max")
          ([0, 1], [1.5, 1.7])
      """
      if len(names) == 1:
          return [entry.get(names[0], None) for entry in self]
      return tuple(
          [entry.get(name, None) for entry in self] for name in names
      )
  
imports: from bisect import bisect_right
  from collections import defaultdict
  from copy import deepcopy
  from functools import partial
  from itertools import chain
  from operator import eq
label_desc: Use image node_id 3 for calling the Logbook obj's underlying member method code with example usage: obj.select() and returns: tuple, unknown