есть ли способ сравнить последние версии алфавита в python

#python

#python

Вопрос:

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

 def getKey(word):
    word = word.lower()
    return len(word)

def findLongestWord(text):
    return max(text.split(), key = getKey)
 

Я хочу только изменить getKey.
Есть ли какой-нибудь способ сравнить последние версии алфавита

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

1. return len(word), word

2. я думаю, он имеет в виду, что чем позже, тем лучше,, A , B, C … и т. Д

3. можете ли вы привести пример? вопрос не ясен.

4. если text = «abc bcde cdef», то findLongestWord возвращает ‘bcde’ Я думаю, что могу использовать кортеж для функции max. но для сравнения строки возвращаемое слово не является последним в алфавите

Ответ №1:

я думаю, вы можете сделать это без функции getkey как

 def find_longest(words):
    return max(sorted(words.lower().split(), reverse=True), key=len)
 

Пример :

 w = 'hello my name is something aomething , i am so happy'

print(find_longest(w))
#something 
 

Ответ №2:

Как упоминалось в комментариях @deceze, решение состоит в том, чтобы вернуться len(word), word .

Первое, что вам нужно для того, чтобы это имело смысл, это то, что при заказе кортежей порядок определяется первым значением, и если первые значения равны, то второе значение, затем третье и так далее.

Второе, что вам нужно знать, чтобы это имело смысл, это то, что при заказе строк они упорядочиваются в алфавитном порядке.

Ответ №3:

 a = ['a','bb','ab']
response = ''
for elem in a:
    if len(elem) > len(response):
        response = elem
    elif len(elem) == len(response) and elem < response:
        response = elem
response
 

‘ab’

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

1. я думаю, ему нужна последняя версия: bb