Conjunto de números

n_set = [1.0,3.2,4.5,8.2,1.3,2.2,5.6,9.8,2.4,5.5,6.7]

Así que estoy tratando de construir una función que toma un conjunto de números y crea una lista de listas, a partir del número establecido. yo estoy tratando de hacer que cada lista tiene un subconjunto de los números de la serie original que aumenta hasta que alcanza un valor máximo

organized_set = [[1.0,3.2,4.5,8.2],[1.3,2.2,5.6,9.8],[2.4,5.5,6.7]]

yo estaba pensando en algo a lo largo de las líneas de

for i,k in zip(range(0,len(n_set)),n_set):
    set = []
    d = dict(zip(i,k))
    d2 = dict(zip(k,i))
    if d[i] < d[d2[i]+1]:
        set.append(k)

esto no hace sentido. estoy trabajando en una tarea mucho más complicada función, pero esta es una parte de ella que está tirando de mí». cualquier ayuda sería con mucho gusto apreciado

InformationsquelleAutor O.rka | 2012-12-02

2 Comentarios

  1. 2

    Intente algo como este enfoque iterativo:

    n_set = [1.0,3.2,4.5,8.2,1.3,2.2,5.6,9.8,2.4,5.5,6.7]
    
    prev = None
    result = []
    current = []
    for x in n_set:
        if prev is not None and x < prev:
            # Next element is smaller than previous element.
            # The current group is finished.
            result.append(current)
    
            # Start a new group.
            current = [x]
        else:
            # Add the element to the current group.
            current.append(x)
    
        # Remember the value of the current element.
        prev = x
    
    # Append the last group to the result.
    result.append(current)
    
    print result 

    Resultado:

    [[1.0, 3.2, 4.5, 8.2], [1.3, 2.2, 5.6, 9.8], [2.4, 5.5, 6.7]]
    • Impresionante! se está trabajando, muchas gracias. estoy un poco confundido sobre cómo un par de piezas de trabajo tho . . . 1] ¿qué significa cuando usted está asignando prev = Ninguno, porque «si x < anterior:» anexar la lista actual ? No hay nada en la lista actual en ese momento me thouhgt? 2] prev = x realmente no entiendo por qué la anterior sería = a x . . . lo siento si las preguntas son un poco raro, yo solo estoy tratando de entenderlo completamente
    • He actualizado mi respuesta y añadió algunos comentarios al código. Espero que le ayude. Si usted todavía está teniendo problemas, pruebe a instalar un IDE con soporte para la depuración y el paso a través del código línea por línea para ver cómo funciona.
  2. 0
         python 3.2
    
         temp=[]
         res=[]
    
         for i in n:
              temp.append(i)
              if len(temp)>1 and i<temp[-2]:
                      res.append(temp[:-1])
                      temp=[i]
         res.append(temp)
         print(res)

Dejar respuesta

Please enter your comment!
Please enter your name here