Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 4, 2012 01:03:30

coconoko
Зарегистрирован: 2012-12-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка по букве

Нужна помощь!

Есть список. Нужно отсортировать его в алфавитном порядке, но вперёд вытащить все слова с буквой f.

Что я делаю не так?

s = ['sdf', 'avrb', 'yoljur', 'abdghf', 'yuegvx']
s1 = []
s2 = []
l = len(s)
s.sort()
for k in range (l):
    k = s.pop()
    if ()=='f':
        s1.append(k)
    else:
        s2.append(k)

Должно получиться так:
s = ['sdf', 'asdghf', 'abdghf', 'avrb', 'yuegvx']

Офлайн

#2 Дек. 4, 2012 01:50:13

smoke853
Зарегистрирован: 2012-10-02
Сообщения: 123
Репутация: +  15  -
Профиль   Отправить e-mail  

Сортировка по букве

как то так:

s = ['sdf', 'avrb', 'yoljur', 'abdghf', 'yuegvx', 'asdsa', 'mgfh']
s1, s2 = [], []
for i in sorted(s):
    if i.count('f'):
        s1.append(i)
    else:
        s2.append(i)
print s1 + s2

Отредактировано smoke853 (Дек. 4, 2012 01:51:16)

Офлайн

#3 Дек. 4, 2012 02:23:20

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Сортировка по букве

без явного создания промежуточных списков
для третьего питона

print(sorted(filter(lambda x: "f" in x, s)) + sorted(filter(lambda x: "f" not in x, s)))
для второго питона
from itertools import ifilter
print(sorted(ifilter(lambda x: "f" in x, s)) + sorted(ifilter(lambda x: "f" not in x, s)))



Офлайн

#4 Дек. 4, 2012 03:09:11

coconoko
Зарегистрирован: 2012-12-04
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка по букве

Большое спасибо, smoke853 и pyuser, вы помогли мне разобраться.

Отредактировано coconoko (Дек. 4, 2012 03:10:49)

Офлайн

#5 Дек. 4, 2012 06:42:28

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Сортировка по букве

У sort() есть волшебный аргумент key:

s = ['sdf', 'avrb', 'yoljur', 'abdghf', 'yuegvx']
s.sort(key=lambda x: (not 'f' in x, x))
print(s)
Почитать можно тут http://wiki.python.org/moin/HowTo/Sorting/

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version