Jak mogę znaleźć minimalną liczbę za pomocą rozumienia listy?

To jest kod, który próbowałem:

def qwe(some_list, min_num):
    b = float('inf')
    for i in some_list:
        if min_num < i < b:
            b = i
    print(b)
a = [2,3,5,8,5,6,3,2,4,5,8,9,6,3,1,7,5,4,1,2,5,6,3]
qwe(a,3)
-1
Pasko Aleksandr 25 luty 2019, 12:46

2 odpowiedzi

Najlepsza odpowiedź

Aby znaleźć minimalną liczbę, której możesz użyć

min(my_list)

Jednak szukasz minimalnej liczby, która jest wyższa niż min_num. Korzystanie ze zrozumienia listy Możesz wybrać wszystkie numery większe niż min_num w następujący sposób:

my_list = [x for x in my_list if x > min_num]

Łącząc te dwa, otrzymasz odpowiedź

min([x for x in my_list if x > min_num])
2
Thijs van Ede 25 luty 2019, 09:49

Używanie rozumienia listy, jeśli ... testowane dla wielu wejść

Wejście

Jeśli [0] == każdy inny [0] Ten warunek w rozumieniu listy jest zatwierdza, że każdy element jest większy bez, niż [0]

 a = [2,3,5,8,5,6,3,2,4,5,8,9,6,3,-3,-47,-5,-4,-1,-2,-5,-6,-3]

min_num = min([each if a[0] == each else a[0] for each in a ])
print(min_num)

Korzystanie z funkcji:

  1. Ta funkcja bierze dwa argumenty - List1 - The
  2. Wejście Lista liczb i min jest zmienna na brak, zostanie to zwrócone jako wyjście na znalezienie minimalnej liczby
  3. Następny linia Sortuje listę wejścia1 za pomocą sortowania ()

  4. Za pętlę do iteracji przez każdy element i porównać dopóki nie otrzymamy minimalnej liczby na liście

  5. Ponieważ lista jest sortowana, weź [0] jako Min_Number, jeśli element na liście jest większy niż [0]
  6. Przypisywanie wartości MIN do [0]

Funkcja, aby znaleźć minimalną liczbę

def min_num(list1, min = None): 

    list1.sort() 
    for each in list1:
        if a[0] == each: 
            min = each   
        elif a[0] < each: 
            min = a[0]
    return min  

Kod sterownika

b = min_num(a,min = None)
print(b)
0
Suresh Parimi 26 luty 2019, 02:07