Уведомления

Группа в Telegram: @pythonsu

#1 Март 15, 2015 22:53:24

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Преобразование списка в строку

terabayt
та весь код ошибка))
Для разбора, как и что работает, я его оставлю )))

Офлайн

#2 Март 16, 2015 18:45:31

ivsatel
Зарегистрирован: 2014-12-06
Сообщения: 18
Репутация: +  1  -
Профиль   Отправить e-mail  

Преобразование списка в строку

Вот такой вариант, если я правильно понял задание:

b = []
a = ['1','2','3','4','5','7','8','10','12','15','21','22','23','24']
d_int = len(a) // 3
[b.append(int(x)) for x in a if int(x) not in b]
print('{0[0]}-{0[3]}, {1}, {2[0]}-{2[3]}'.format(b[:d_int:], ''.join(str(b[d_int:-d_int])).strip("]["), b[-d_int:]))

Отредактировано ivsatel (Март 16, 2015 18:59:41)

Офлайн

#3 Март 17, 2015 08:55:49

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Преобразование списка в строку

ivsatel
>>> b = []
>>> a = ['1','2','3','4','5','7','8','10','12','15','21','22','23','24']
>>> d_int = len(a) // 3
>>> [b.append(int(x)) for x in a if int(x) not in b]
[None, None, None, None, None, None, None, None, None, None, None, None, None, None]
>>> print('{0[0]}-{0[3]}, {1}, {2[0]}-{2[3]}'.format(b[:d_int:], ''.join(str(b[d_int:-d_int])).strip
("]["), b[-d_int:]))
1-4, 5, 7, 8, 10, 12, 15, 21-24
>>>
А надо ‘1-5, 7, 8, 10, 12, 15, 21-24’

Shaman
l = ['1','2','3','4','5','7','8','10','12','15','21','22','23','24']
def rf(a, b):
    if abs(int(a[-1]) - int(b)) == 1:
        if len(a) > 1 and a[-2] == '-':
            a[-1] = b
            return a
        return a + ['-', b]
    return a + [',', b]
print ''.join(reduce(rf, l[1:], [l[0]]))
>>> 1-5,7-8,10,12,15,21-24
Между 7 и 8 должна быть ‘,’

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

Отредактировано Stright (Март 17, 2015 08:58:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version