Игнорировать или удалять дубликаты тегов - PullRequest
0 голосов
/ 02 июля 2018

У меня есть небольшая программа, которая принимает HTML-теги и затем определяет, являются ли два набора переданных тегов \ атрибутов одинаковыми или нет.

Этот код работает:

def tags_equal(str1, str2):
    a = list(str1[1:-1].lower().split())
    a.sort()
    b = list(str2[1:-1].lower().split())
    b.sort()
    x = (a == b)
    return x


print(tags_equal("<img src=cats.jpg width=200 height=400>", "<IMG SRC=Cats.JPG height=400 width=200>"))
print(tags_equal("<img src=dogs.jpg width=999 height=400>", "<img src=dogs.jpg width=200 height=400>"))
print(tags_equal("<p>", "<P>"))
print(tags_equal("<b>", "<p>"))

Это правильно возвращает: True, False, True и False.

Существует опция, которая гласит, что если переданы дублирующиеся атрибуты, то первый - тот, который должен использоваться, и все остальные атрибуты с тем же имя следует игнорировать.

Это означает:

tags_equal("<LABEL FOR=id_email for=id_username>", "<LABEL FOR=id_email>")

должен возвращать 'True', поскольку 'for = id_username' игнорируется \ отбрасывается, а

tags_equal("<LABEL FOR=id_email for=id_username>", "<LABEL FOR=id_username>")

должен вернуть 'False'.

Я просто застрял в том, как поступить. Кроме того, может быть передано более двух атрибутов с одним и тем же именем. Если это так, то первый остается неизменным, а все остальные отбрасываются \ игнорируются.

Наконец, «первый выигрывает» основан на переданном порядке, а не на порядке сортировки после.

Любая помощь будет оценена.

...