Ottenere un elemento della lista / tupla unico dato una condizione in pitone
-
21-08-2019 - |
Domanda
Come faccio ad avere un elemento di tuple / Lista dato una condizione in pitone? Ciò si verifica abbastanza spesso e sto cercando un modo piacevole-poche linee-divinatorio di fare questo.
qui potrebbe essere un esempio:
Si consideri una tupla contenente punti 2D coordinate in questo modo:
points = [[x1, y1],[x2, y2],[x3, y3], ...]
E vorrei ottenere il punto che riduce al minimo la distanza euclidea dato un punto arbitrario (ad esempio [X, Y] per esempio, il mio punto è: non è contenuto nella lista)
def dist(p1, p2):
return sqrt((p2[0]-p1[0])**2+(p2[1]-p1[1])**2)
pointToCompare2 = [X, Y]
Chiunque abbia un Freaky uno di linea (o meno) per questo? Grazie!
Soluzione
min(points, key=lambda x: dist(pointToCompare2, x))
min è una funzione built-in.
Altri suggerimenti
v = [1,3,2,4,7,3,3,4,5,11]
def get_num_uniques(v):
count = []
dup = []
tmp = []
for i in v:
if i not in count:
count.append(i)
else:
dup.append(i)
count.remove(i)
for j in count:
if j not in dup:
tmp.append(j)
return tmp
#Call the function
print get_num_uniques(v)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow