Domanda

Qui è il mio problema. Sto lavorando su un programma Jython e devo estrarre i numeri da un PyJavaInstance:

[{stringa1 = "foo", xxx1 "bar", XXX2, ..., xxxN, stringa2 =}]

(dove xxx sono i numeri in virgola mobile).

La mia domanda è come posso estrarre i numeri e metterli in una struttura più semplice, come una lista python.

Grazie in anticipo.

È stato utile?

Soluzione

Un PyJavaInstance è un wrapper Jython attorno a un'istanza di Java; come estrarre i numeri da esso dipende da quello che è. Se avete bisogno di ottenere un mucchio di roba - alcuni dei quali sono stringhe e alcuni dei quali sono galleggianti, quindi:

float_list = []
for item in instance_properties:
    try:
        float_list.append(float(item))
    except ValueError:
        pass

Altri suggerimenti

è possibile scorrere e controllare se un elemento è galleggiare? Il metodo che stai cercando è isinstance . Spero che sia implementato in Jython.

Grazie Vinay. E 'anche il tipo di soluzione che ho appena trovato:

 new_inst=[]
for element in instance:
    try:
        float(element)
        new_inst.append(float(element))
    except ValueError:
        del(element)

@SilentGhost: Buon suggerimento. Il problema era quello di trovare quale metodo potrebbe determinare se ogni elemento che iterare è un numero float.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top