Форум сайта python.su
0
Добрый день! Возникла проблема с сортировкой слов в списке относительно их длинны.
Вот мой код:
list1 = ['orange', 'apple', 'banana', 'carrot', 'potato', 'lettuce', 'milk', 'sugar', 'butter', 'flavour'] list1.sort(key=lambda word: len(word)) for i in list4: print len(i) print(list1)
['milk', 'apple', 'sugar', 'orange', 'banana', 'carrot', 'potato', 'butter', 'lettuce', 'flavour']
Отредактировано FishHook (Июнь 4, 2015 16:02:38)
Офлайн
568
#!/usr/bin/env python # -* coding: utf-8 -*- from itertools import groupby list1 = ['orange', 'apple', 'banana', 'carrot', 'potato', 'lettuce', 'milk', 'sugar', 'butter', 'flavour'] list1.sort(key=lambda word: len(word)) print [list(x[1]) for x in groupby(list1, key=lambda x: len(x))]
Офлайн
857
>>> import itertools >>> >>> lst = ['orange', 'apple', 'banana', ... 'carrot', 'potato', 'lettuce', ... 'milk', 'sugar', 'butter', ... 'flour'] >>> >>> lst.sort(key=lambda i: len(i)) >>> d = {n: tuple(g) for n, g in itertools.groupby(lst, len)} >>> d {4: ('milk',), 5: ('apple', 'sugar', 'flour'), 6: ('orange', 'banana', 'carrot', 'potato', 'butter'), 7: ('lettuce',)} >>>
Отредактировано py.user.next (Июнь 4, 2015 16:19:21)
Офлайн
1
line = ['milk', 'apple', 'sugar', 'orange', 'banana', 'carrot', 'potato', 'butter', 'lettuce', 'flavour'] sort_line = sorted(line, key=len) for count in sort_line: print(len(count), count)
Офлайн