2017-02-07 5 views
0

Я хочу сортировать слова в строке (строке) по их длине, а затем сортировать их по списку по количеству слов в каждой строке.Сортировка строк со словами в списке

list_of_words = ['hoop t','hot op','tho op','ho op t','phot o'] 

Так что результат будет:

hoot t 
phot o 
hot op 
tho op 
ho op t 
+1

Так что ваш вопрос? –

+0

Как отсортировать их в python –

+0

Просьба уточнить ваш вопрос, указав, что именно вы спрашиваете, какова ваша проблема и что вы пробовали до сих пор. – Xenon

ответ

1

Если я правильно понял, что именно вы хотите достичь, это будет сделать это:

list_of_words = ['hoop t','hot op','tho op','ho op t','phot o'] 

# first sort the words in each string by their length, from longest to shortest 
for i, words in enumerate(list_of_words): 
    list_of_words[i] = sorted(words.split(), key=len, reverse=True) 

# second sort the list by how many words there are in each sublist 
list_of_words.sort(key=lambda words: len(words)) # sorts list in-place 

# third, join the words in each string back together into a single string 
for i, words in enumerate(list_of_words): 
    list_of_words[i] = ' '.join(words) 

# show results 
print(list_of_words) 
['hoop t', 'hot op', 'tho op', 'phot o', 'ho op t'] 

 Смежные вопросы

  • Нет связанных вопросов^_^