2013-02-26 13 views

Odpowiedz

9

Określ minimalny element, a następnie sprawdź go względem innych elementów na liście.

def locate_min(a): 
    smallest = min(a) 
    return smallest, [index for index, element in enumerate(a) 
         if smallest == element] 

która zwróci krotkę (min_element, [location, location, ...]). Jeśli dobrze cię rozumiem, myślę, że tego chcesz. Na przykład:

>>> locate_min([1, 2, 1, 1, 4, 5, 6]) 
(1, [0, 2, 3]) 

W tym przykładzie zastosowano ze zrozumieniem listy. Jeśli nie jesteś tego obeznany, jest to mniej więcej odpowiednik następującej wersji for-loop. (Użyj pierwszą wersję, to tylko, aby pomóc zrozumieć, jak to działa)

def locate_min(a): 
    min_indicies = [] 
    smallest = min(a) 
    for index, element in enumerate(a): 
      if smallest == element: # check if this element is the minimum_value 
        min_indicies.append(index) # add the index to the list if it is 

    return smallest, min_indicies 
8

ja po prostu to zrób tak:

minimum = min(a) 
indices = [i for i, v in enumerate(a) if v == minimum] 
Powiązane problemy