[Python-es] escogencia arbitraria en un diccionario

Arnau Sanchez pyarnau en gmail.com
Vie Jul 23 21:02:43 CEST 2010


On Fri, 23 Jul 2010 10:47:40 -0700 (PDT) Oswall Verny Arguedas C. wrote:

> Será posible escoger un par (key:value) arbitrario, o el primero o el
> ultimo, sin conocer los keys.
> Si creo un diccionario, quiero escoger el primer par del diccionario.

A lo ya comentado, una pequeña aportación limitándonos a los
diccionarios estándar (no ordenados):

- obtener un par cualquiera del diccionario, de la implementación
  dependerá cuál (excepción StopIteration si vacío):

>>> d = {1: "a", 2: "b", 3: "c"}
>>> d.iteritems().next()
(1, "a")

- escoger los "primeros" N pares (si hay menos, devuelve los que haya):

>>> from itertools import islice
>>> n = 2
>>> list(islice(d.iteritems(), n))
[(1, 'a'), (2, 'b')]

- no veo qué utilidad pueda tener, pero si uno se empeña en saber el
  "último" par del diccionario:

>>> def ilast(it):
>>>    return reduce(lambda x, y: y, it)
>>> ilast(d.itertems())
(3, 'c')


Más información sobre la lista de distribución Python-es