Come hai già capito sono un principiante e sto cercando di capire quale sia il "modo Pythonic" di scrivere questa funzione è costruito su So che altri thread potrebbero includere una risposta parziale a questo, ma non so cosa cercare dato che non capisco cosa sta succedendo qui.Capire questa riga: list_of_tuples = [(x, y) per x, y, label in data_one]
questa linea è un codice che il mio amico mi ha mandato, per migliorare il mio codice che è:
import numpy as np
#load_data:
def load_data():
data_one = np.load ('/Users/usr/... file_name.npy')
list_of_tuples = []
for x, y, label in data_one:
list_of_tuples.append((x,y))
return list_of_tuples
print load_data()
Il "migliorato" versione:
import numpy as np
#load_data:
def load_data():
data_one = np.load ('/Users/usr.... file_name.npy')
list_of_tuples = [(x,y) for x, y, label in data_one]
return list_of_tuples
print load_data()
Mi chiedo:
- Cosa sta succedendo qui?
- È un modo migliore o peggiore? dal momento che è "Pythonic" presumo che non sarebbe funzionare con altre lingue e quindi forse è meglio abituarsi al modo più generale?
è una lista di comprensione. è più pulito e più pitonico. controllalo su google. inoltre, sarà anche più veloce. è sicuramente un modo migliore. – acushner
è il "cosa sta succedendo qui" non è chiaro dalla versione non migliorata? – mgilson
https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions –