У меня есть небольшая программа, которая принимает 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'.
Я просто застрял в том, как поступить. Кроме того, может быть передано более двух атрибутов с одним и тем же именем. Если это так, то первый остается неизменным, а все остальные отбрасываются \ игнорируются.
Наконец, «первый выигрывает» основан на переданном порядке, а не на порядке сортировки после.
Любая помощь будет оценена.