Я хочу поместить все имена длиннее средней длины в новый список. Это то, что у меня есть до сих пор, но оно не печатает ничего

#python-3.x

#python-3.x

Вопрос:

 names = ["jeremy","johnathon"]
average = 4

def longestNames(names,average):
  newlist = []
  for i in names:
   if len(names) > average:
    return newlist.append(len(names))

z = longestNames(names,average)
print(z)
 

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

Ответ №1:

Ошибки нет. код возвращает None, потому что оба jack и john имеют длину меньше средней

Редактировать: используйте этот код:

 names = ["veryyyyyyyy","sml"]
average = 4

def longestNames(names,average):
  newlist = []
  for i in names:
   if len(i) > average:
    newlist.append(i)
  return newlist

z = longestNames(names,average)
print(z)
 

Примечание list.append() возвращает None . Вы должны вернуть сам список

Комментарии:

1. даже если вы измените имена, оно все равно не печатает ни одного

Ответ №2:

Имена, которые вы уже выбрали, имеют длину, равную 4, но вы проверяете среднее значение больше 4. Таким образом, возвращаемое значение будет равно none . Лучше попробовать другие имена длиной 5 или больше или изменить начальное среднее значение на меньшее, чем 4.

Комментарии:

1. Даже если имена больше 4, оно все равно не печатает ни одного