Как найти только первое наименьшее целое число в списке - PullRequest
1 голос
/ 19 июня 2020

Я нашел наименьший элемент в списке и вернул новый список без наименьшего элемента. Это должно быть легко с min (), но мне нужно удалить только первое вхождение этого целого числа, чтобы [1, 4, 1, 2] превратились в [4, 1, 2]. Когда я пытаюсь выполнить min (), он удаляет все вхождения наименьшего целого числа. Есть ли способ сделать это с помощью min () или мне нужно искать другой способ?

Ответы [ 2 ]

3 голосов
/ 19 июня 2020

Метод remove удаляет первое вхождение элемента.

lst = [1, 4, 1, 2]
lst.remove(min(lst))
print(lst)

дает

[4, 1, 2]

Как видно из вышеизложенного, remove выполняет -местите модификацию в списке, поэтому, если вы не хотите изменять исходный список, начните с создания копии (используя, например, new_list = lst.copy()) и работайте с копией. Обратите внимание, что то же самое верно и для метода pop, упомянутого в другом ответе.

3 голосов
/ 19 июня 2020
for i, v in enumerate(my_list):
    if v == min(my_list):
        my_list.pop(i)
        break

Еще лучше:

my_list.pop(my_list.index(min(my_list)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...