在python中,如何确定两个列表是否具有相同的属性?

在python中,如何确定两个列表是否具有相同的属性?,python,Python,对于我的编码项目,我必须使用这段代码,看看是否有类似的属性。如果是的话, 我需要一个print语句说“列表具有相似的属性”,如果没有,那么应该有一个print语句说“这两个语句具有相同的属性” 类框: 定义初始化(self,date1,contents1,location1): self.date=date1 self.contents=contents1 self.location=位置1 框23=框(“2016年”、“病历”、“储藏室”) 第21栏=第21栏(“2018”、“洗液样本”、“候

对于我的编码项目,我必须使用这段代码,看看是否有类似的属性。如果是的话, 我需要一个print语句说“列表具有相似的属性”,如果没有,那么应该有一个print语句说“这两个语句具有相同的属性”

类框:
定义初始化(self,date1,contents1,location1):
self.date=date1
self.contents=contents1
self.location=位置1
框23=框(“2016年”、“病历”、“储藏室”)
第21栏=第21栏(“2018”、“洗液样本”、“候诊室”)
box07=框(“2020”,“流感疫苗传单”,“接待台”)
打印(第23栏日期)
打印(第21框。目录)
打印(框07.位置)

如果要比较单个属性,可以使用

if box23.date == box21.date:
    print("boxes have the same date")
else:
    print("boxes have different dates")
如果要比较所有属性,只需比较
\u dict\u
属性即可:

if box23.__dict__ == box21.__dict__:
    print("boxes have the same attributes")
else:
    print("boxes don't have the same attributes")

如果要获取两个对象上的所有属性:

def get_matching_attributes(instance1, instance2):
    return [attribute for attribute in instance1.__dict__ if attribute in instance2.__dict__]
->返回所有匹配属性的列表



如果要获取位于两个对象且具有相同值的所有属性:

确保您还获得了上面定义的用于使用的函数
get_matching_attributes

->返回也具有相同值的所有匹配属性的列表


提示:如果您想获得一个tuble中所有匹配属性的列表,请将最后一列更改为
返回匹配的\u值
,并使用
True
False
指示属性在两个对象中是否具有相同的值。

什么?什么清单?什么是列表属性?列表没有数据属性-它们有一堆方法和类似
\uuuuuu class\uuuuuuuu
的东西,但就是这样。什么列表?这里的预期输出是什么?box23、box21和box07是列表,对吗?根本不是,它们是Box对象。不,它们是Box的实例。
def compare_matched_attribute_values(instance1, instance2):
    matching_attributes = get_matching_attributes(instance1, instance2)
    matching_values = []
    for attribute in matching_attributes:
        if instance1.__dict__[attribute] == instance2.__dict__[attribute]:
            matching_values.append((attribute, True))
        else:
            matching_values.append((attribute, False))
    return [obj[0] for obj in matching_values if obj[1] is True]