0
0 комментариев

Есть множество строк вида:

a = '<httpSample t="51" lt="51" ts="1478854873129" s="true" lb="Enter SHI" rc="200" rm="OK" tn="Sorting 1-21" dt="text" by="1749"/>'

Задача: найти более быстрый способ получения из строк вида «a» значения атрибутов «t» и «lb» чем представленные (уточняю — главный критерий время, оно должно быть меньше, чем в представленных мною вариантах):

  1. Не хорошо (вдруг изменится количество атрибутов), но быстро (количество атрибутов неизменно):

    def x():
        b = a.split('"')
        xxx, yyy = b[1], b[9]
    

  2. Хорошо, но в 6 раз дольше x():

    import xml.etree.cElementTree as ET
     
    def y():
        tree = ET.fromstring(a)
        xxx = tree.attrib['t']
        yyy = tree.attrib['lb']
    

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

from timeit import timeit
print timeit(x, number=3000000)
print timeit(y, number=3000000)


Добавить комментарий