Estrarre solo i numeri da dati in Jython
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.
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.