【发布时间】:2011-10-30 19:51:30
【问题描述】:
我有对象列表。我想在这个列表中找到一个(第一个或其他)对象,它的属性(或方法结果 - 不管)等于value。
找到它的最佳方法是什么?
这里是测试用例:
class Test:
def __init__(self, value):
self.value = value
import random
value = 5
test_list = [Test(random.randint(0,100)) for x in range(1000)]
# that I would do in Pascal, I don't believe it's anywhere near 'Pythonic'
for x in test_list:
if x.value == value:
print "i found it!"
break
我认为使用生成器和reduce() 不会有任何区别,因为它仍然会遍历列表。
ps.:value 的等式只是一个例子。我们当然想得到满足任何条件的元素。
【问题讨论】:
-
原帖可笑已过时,但第二个回复与我的单行版本完全匹配。我不相信它比基本循环版本更好。