Python 如何根据属性值获取类中的项列表

Python 如何根据属性值获取类中的项列表,python,list,class,sorting,attributes,Python,List,Class,Sorting,Attributes,我有一个基于列表创建值的测试类 我想获取列表中值大于3的列表项?或列表项的排序列表 如下图所示: class test: def __init__(self, test): self.name = test m=1 class_items = {} list = ['a', 'b', 'c', 'd', 'e', 'f'] for i in list: class_items[i] = test(i) class_items[i].value = m

我有一个基于列表创建值的测试类

我想获取列表中值大于3的列表项?或列表项的排序列表

如下图所示:

class test:
    def __init__(self, test):
        self.name = test

m=1
class_items = {}
list = ['a', 'b', 'c', 'd', 'e', 'f']

for i in list:
    class_items[i] = test(i)
    class_items[i].value = m    
    m = m+1

class_items['e'].value
Out[2]: 5

class_items['a'].value
Out[3]: 1
或项目值大于3:

['f', 'e', 'd', 'c', 'b', 'a']
您需要创建一个新的
列表
,其中包含
大于
3
的元素,并将
反向
标志设置为

另外:不要将您的
列表
命名为
列表
。它会隐藏内置的
列表

您需要创建一个新的
列表
,其中包含
大于
3
的元素,并将
反向
标志设置为


另外:不要将您的
列表
命名为
列表
。它隐藏内置的
列表

您可以使用列表理解来构建它。另外,您不应该给列表命名,因为它会覆盖内置名称,所以在本例中,我将您的
列表重命名为
已知的
。它包含完全相同的值,我只是想给它一个更好的名字

print(sorted([k for k, v in class_items.items() if v.value > 3], reverse=True))
# ['f', 'e', 'd']
这将返回
['d','e','f']
。然后,您可以根据需要对该列表进行排序!反转它应该可以工作,就像在反转之前对它进行排序一样


您可以使用列表理解来构建它。另外,您不应该给列表命名,因为它会覆盖内置名称,所以在本例中,我将您的
列表重命名为
已知的
。它包含完全相同的值,我只是想给它一个更好的名字

print(sorted([k for k, v in class_items.items() if v.value > 3], reverse=True))
# ['f', 'e', 'd']
这将返回
['d','e','f']
。然后,您可以根据需要对该列表进行排序!反转它应该可以工作,就像在反转之前对它进行排序一样

试试这个:

values = [i for i in known if class_items[i].value > 3]
输出:

class_items_sorted = sorted([key for key, val in class_items.items()], reverse=True)

class_items_filtered = sorted([key for key, val in class_items.items() if val.value>3], reverse=True)

print(class_items_sorted)

print(class_items_filtered)
试试这个:

values = [i for i in known if class_items[i].value > 3]
输出:

class_items_sorted = sorted([key for key, val in class_items.items()], reverse=True)

class_items_filtered = sorted([key for key, val in class_items.items() if val.value>3], reverse=True)

print(class_items_sorted)

print(class_items_filtered)

你试过什么,它到底有什么问题?你试过什么,它到底有什么问题?那么,接下来是“v.value>3”。@quamrana我的错,修复了。好的,更好。现在值得一投。所以,下一个是“v.value>3”。@quamrana我的坏,修复。好,更好。现在值得投一票。
['f', 'e', 'd', 'c', 'b', 'a']
['f', 'e', 'd']