Получение разных результатов для max (max(x, key =len )) и max ( max (i) для i в x)

#python-3.x #deep-learning

#python-3.x #глубокое обучение

Вопрос:

Я пытаюсь классифицировать обзоры в наборе данных imdb с помощью глубокого обучения. Здесь у меня есть список списков переменного размера. Мне интересно найти список с максимальным размером среди этих списков переменного размера. Но я получаю разные результаты от 2-х разных методов. кто-нибудь может сказать, что правильно.

мой код выглядит следующим образом:-

 from keras.datasets import imdb
from keras.layers import Dense
from keras.models import Sequential

#importing datasets
(x,y),(xtest,ytest) = imdb.load_data(num_words = 10000)

#trying for loop method
max(max(i) for i in x)

#trying max method
max(max(x, key = len))
  

Метод for-loop генерирует 9999, тогда как метод max генерирует 9890.

Заранее спасибо

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

1. max(i) получает максимум по значению, а остальное по длине. Рассмотрим: ‘009’ и ’90’. max(i) возвращает 90, в то время как other возвращает 009.

2. @Austin Спасибо за пример

Ответ №1:

Предполагая, что x — это список списков, max(x, key = len) вы получаете самый длинный список в x , поэтому, когда вы это делаете max(max(x, key = len)) , вы получаете максимальный элемент внутри самого длинного списка, что не то, что вы хотите. Удалите внешний max , и он должен работать так, как ожидалось.

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

1. Спасибо за разъяснение.