Как я могу создать функцию в Python, которая принимает список чисел и целое число? - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу создать функцию, которая принимает список и целое число в качестве аргумента и выводит список в порядке возрастания самого значения, которое меньше значения во втором аргументе.

Затем, если значение целого числа (второго аргумента) меньше, чем каждое значение в списке, функция возвращает оператор вывода наподобие «Здесь ничего нет».

def thisFunction(mylist=[], *myNum):
    print(mylist)
    print(*myNum)

    for x in list(int(mylist[0])):
        if x > myNum:
            mylist.remove(x)
            mylist.sort()
        elif x < myNum:
            print(f"There are no values less than numbers{myNum}")


thisFunction([12,4,5,6,7,11,56],5)

Прямо сейчас я получаю Ошибка типа: объект 'int' не повторяется . Я не знаю, что я делаю не так!

1 Ответ

0 голосов
/ 11 февраля 2020

Вы можете применять list(args) только тогда, когда arg является итеративным, определенным в документации как «Объект, способный возвращать своих членов по одному за раз». Следовательно, list(int(mylist[0])) не имеет смысла, поскольку вы, по сути, пытаетесь list(12), учитывая список ввода в вашем примере.

Вместо этого, возможно, вы хотите использовать for l oop, чтобы выполнить итерацию по данному списку, сравнить каждый элемент в этом списке с myNum, создать список, содержащий только элементы, которые меньше myNum, отсортировать созданный список и распечатать его. Вот пересмотренный код, чтобы помочь вам начать. (Я сделал несколько стилистических изменений c, чтобы сделать функцию более Pythoni c и удобочитаемой, , то есть , заменив print вызовы функции на оператор return, et c.)

def thisFunction(mylist, myNum):
    if myNum < min(mylist):
        return f"There are no values less than numbers{myNum}"
    else:
        lst = [num for num in mylist if num < myNum]
        lst.sort()
        return lst

Мы можем проверить, есть ли какие-либо элементы меньше, чем myNum в mylist, с помощью функции min. Если значения меньше myNum, мы помещаем эти элементы в новый список с именем lst и возвращаем его в отсортированном состоянии.

Проверьте вывод:

>>> print(thisFunction([12,4,5,6,7,11,56],10))
[4, 5, 6, 7]
>>> print(thisFunction([12,4,5,6,7,11,56],3))
There are no values less than 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...