【发布时间】:2009-02-28 18:06:20
【问题描述】:
假设我正在创建一个类似于 C 风格结构的简单类,仅用于保存数据元素。我试图弄清楚如何在对象列表中搜索属性等于某个值的对象。下面是一个简单的例子来说明我正在尝试做的事情。
例如:
class Data:
pass
myList = []
for i in range(20):
data = Data()
data.n = i
data.n_squared = i * i
myList.append(data)
我将如何搜索 myList 列表以确定它是否包含 n == 5 的元素?
我一直在谷歌搜索和搜索 Python 文档,我想我可以通过列表理解来做到这一点,但我不确定。顺便说一句,我可能会补充说我必须使用 Python 2.4.3,所以我无法使用任何新的 gee-whiz 2.6 或 3.x 功能。
【问题讨论】:
-
可能是您的示例的无意怪癖: myList = [Data().n==0, Data().n=1, ...] 其中 data.n 将由 range( ) 和 data.n 将是 myList 的索引。因此,您只需通过索引值引用 myList 即可拉出任何 Data() 实例。当然,您以后可以修改 myList[0].n = 5.2 或其他内容。而且这个例子可能过于简单了。
标签: python