我有一个小程序,它接收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”。
我只是对如何进行感到困惑。另外,可能有两个以上传入的具有相同名称的属性。如果是这样,则第一个保留,而所有其他属性都将被丢弃\忽略。
最后,“第一个获胜者”是基于传递的顺序,而不是岗位排序顺序。
任何帮助将不胜感激。