[Python-es] escogencia arbitraria en un diccionario

Oswall Verny Arguedas C. oswallcr en yahoo.com
Mar Jul 27 17:46:11 CEST 2010





----- Mensaje original ----
De: Arnau Sanchez <pyarnau en gmail.com>
Para: python-es en python.org
Enviado: vie, julio 23, 2010 1:02:43 PM
Asunto: Re: [Python-es] escogencia arbitraria en un diccionario

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')
_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Gracias,
Este me funcionó perfecto:    d.iteritems().next()
Oswall


      


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