【问题标题】:How do I find an object's specific content in a list? [duplicate]如何在列表中找到对象的特定内容? [复制]
【发布时间】:2021-07-27 20:42:54
【问题描述】:

我在一个列表中有一堆对象,它们有一个名为“数字”的字段。让列表称为“已收集”。

如何在列表中找到字段中包含“4”的对象?

我试过了

class stats:
    def __init__(self, numba):
        self.Number = int(numba)

if (collected.Number == 4):
 #do stuff

但是,我收到一条错误消息 'list' 对象没有属性 'number' 即使这样有效,我怎么能看到列表的哪个索引甚至找到了“4”?

【问题讨论】:

  • 因为您将字段称为Number,而不是number。拼写很重要。
  • 对不起,我忘记在这里大写了@TimRoberts
  • 你如何定义stats
  • @Chris_Rands 抱歉,上面的课程被称为stats
  • 你需要先创建一个stats的实例。喜欢x = stats(4)。然后您可以检查x.Number == 4 是否因为xstats 对象。

标签: python


【解决方案1】:

你的意思是:

def findindex(lst,value):
    for i,n in enumerate(lst):
        if n.Number == value:
            return i
    return -1

【讨论】:

  • 在这种情况下会是什么?它只是一个临时对象吗?
  • 您可以查找enumerate函数。每次循环,i 都会有项目的索引,n 会是列表的对应元素。
【解决方案2】:

如果stats 是一个包含Data 实例的列表,那么stats 列表没有Number 属性,元素有。

stats[i].Number 是合法的,对于 range(len(stats)) 中的任何 i。

【讨论】:

  • 如果我要检查“4”是否在列表对象的属性中,我将如何在条件中定义 [i]?
猜你喜欢
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-09
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多