Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 9, 2010 15:51:15

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Списки!

можно вот так извратиться, если порядок вывода не важен:

# coding: utf-8

txt = """uvr-10 340 00:1b:fc:20:de:29 11 20100101.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100102.uvr-10
uvr-10 340 00:1b:fc:20:de:28 11 20100106.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100109.uvr-10"""

z = dict(map(lambda x:[x.split(' ')[2],x],txt.split('\n')))
print '\n'.join(z[x] for x in z )
результат:
uvr-10 340 00:1b:fc:20:de:28 11 20100106.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100109.uvr-10

Офлайн

#2 Фев. 9, 2010 16:21:05

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Списки!

o7412369815963
можно вот так извратиться, если порядок вывода не важен:
# coding: utf-8

txt = """uvr-10 340 00:1b:fc:20:de:29 11 20100101.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100102.uvr-10
uvr-10 340 00:1b:fc:20:de:28 11 20100106.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100109.uvr-10"""

z = dict(map(lambda x:[x.split(' ')[2],x],txt.split('\n')))
print '\n'.join(z[x] for x in z )
результат:
uvr-10 340 00:1b:fc:20:de:28 11 20100106.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100109.uvr-10
Ок, на мысль навел дальше думать буду! Спасибо!!!



Офлайн

#3 Фев. 9, 2010 18:27:23

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Списки!

дальше думать буду! Спасибо!!!
А что тебя раньше останавливало?



Отредактировано (Фев. 9, 2010 18:27:44)

Офлайн

#4 Фев. 9, 2010 18:33:13

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Списки!

Вспомнил про штатную ф-ию группировки “groupby”

# coding: utf-8

from itertools import groupby

txt = """uvr-10 340 00:1b:fc:20:de:29 11 20100101.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100102.uvr-10
uvr-10 340 00:1b:fc:20:de:28 11 20100106.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100109.uvr-10"""

print '\n'.join( [ x[1].next() for x in groupby( sorted(txt.split('\n')), key=lambda x:x.split(' ')[2] ) ] )
если нужно что-б последовательность оставалась (:29 :28 :29) то можно без сортировки:
print '\n'.join( [ x[1].next() for x in groupby(txt.split('\n'), key=lambda x:x.split(' ')[2] ) ] )
сейчас выписал стандартные ф-ии для работы со списками, с примерами. может пригодится

Офлайн

#5 Фев. 10, 2010 10:04:26

avdoshkin
От:
Зарегистрирован: 2009-08-08
Сообщения: 93
Репутация: +  -1  -
Профиль   Отправить e-mail  

Списки!

o7412369815963
Вспомнил про штатную ф-ию группировки “groupby”
# coding: utf-8

from itertools import groupby

txt = """uvr-10 340 00:1b:fc:20:de:29 11 20100101.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100102.uvr-10
uvr-10 340 00:1b:fc:20:de:28 11 20100106.uvr-10
uvr-10 340 00:1b:fc:20:de:29 11 20100109.uvr-10"""

print '\n'.join( [ x[1].next() for x in groupby( sorted(txt.split('\n')), key=lambda x:x.split(' ')[2] ) ] )
если нужно что-б последовательность оставалась (:29 :28 :29) то можно без сортировки:
print '\n'.join( [ x[1].next() for x in groupby(txt.split('\n'), key=lambda x:x.split(' ')[2] ) ] )
сейчас выписал стандартные ф-ии для работы со списками, с примерами. может пригодится
Привет, спасибо! Все четко получилось! За ссылку спасибо, твои примеры разобрал и почитал, так намного легче в изучении языка, к сожалению от таких глупых вопросов на стадии изучения не исключить.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version