Se um único elemento da lista / tupla dado uma condição em python
-
21-08-2019 - |
Pergunta
Como faço para obter um elemento de tupla / lista dada uma condição em python? Isso ocorre muito frequentemente e eu estou procurando uma maneira de Nice-poucas linhas-pythônico de fazer isso.
aqui poderia ser um exemplo:
Considere uma tupla contendo 2D pontos coordenadas assim:
points = [[x1, y1],[x2, y2],[x3, y3], ...]
E eu gostaria de obter o ponto que minimiza a distância euclidiana dada um ponto arbitrário (digamos [X, Y] por exemplo, o meu ponto é: ele não está contido na lista!)
def dist(p1, p2):
return sqrt((p2[0]-p1[0])**2+(p2[1]-p1[1])**2)
pointToCompare2 = [X, Y]
Qualquer pessoa com um forro de um estranho (ou não) para isso? Obrigado!
Solução
min(points, key=lambda x: dist(pointToCompare2, x))
Outras dicas
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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow