假设我正在创建一个简单的类以类似于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功能。
您可以通过列表理解获得 所有 匹配元素的列表:
[x for x in myList if x.n == 30] # list of all elements with .n==30
如果您只是想确定列表中是否包含 任何 匹配的元素并(相对)有效地进行操作,则可以
def contains(list, filter):
for x in list:
if filter(x):
return True
return False
if contains(myList, lambda x: x.n == 3) # True if any element has .n==3
# do stuff
问题内容: 我有点迷茫,无法做到最快。我有一大堆具有基本变量属性的对象(带有getters / setters方法),我需要在此列表中进行搜索以找到列表中与给定参数匹配的对象 我已经找到了如何进行常规列表搜索的方法,但是我需要进行搜索,例如搜索列表中每个对象的调用getName()的结果的值,并获取结果与我的输入匹配的对象。 如下所示,第三个参数是方法调用的结果,第二个是我要查找的结果。 任何建议
问题内容: 我有一个对象列表,列表很大。对象是 现在,我必须在列表中搜索对象的特定值。假设 我必须返回那些对象(我的搜索并不总是基于value3) 清单是 有效的方法是什么? 谢谢。 问题答案: 您可以尝试使用Apache Commons Collections。 有一个CollectionUtils类,允许您通过自定义谓词选择或过滤项目。 您的代码将如下所示: 更新: 在 java8中 ,使用
在我正在设计的应用程序中,我有一个名为的自定义对象列表。这里可以看到Shop类。 在我的应用程序中,我创建了一个对象,并用1500个Shop对象填充它。 我已经覆盖了shop.java中的equals和hashcode方法,并且可以使用list#contains方法来验证列表中包含一个具有匹配weblink的对象,但无法获取该对象的索引。 equals和hashcode方法: 要使用它,我要用we
我有一个对象列表,列表很大。对象是 现在我必须在列表中搜索一个对象的特定值。假设我必须返回这些对象(我的搜索不总是基于value3) 该列表为
本文向大家介绍在C#中搜索SortedList对象,包括了在C#中搜索SortedList对象的使用技巧和注意事项,需要的朋友参考一下 要在SortedList对象中进行搜索,代码如下- 示例 输出结果 这将产生以下输出- 示例 让我们看另一个例子- 输出结果 这将产生以下输出-
问题内容: 我有一堂课。它具有以下特征; 它具有2个属性,和。1个人可以拥有许多电话,因此您可能会在下面看到具有多个ID的人。 还有另一门课叫。它将有一个称为的方法。 personList,具有3-4个Person对象。我需要搜索PersonArrayList并找到与Person对象匹配的对象。我怎样才能做到这一点? 注意:我尝试过。但这是行不通的。 问题答案: 我尝试了personList.co