我有一张物品清单。我想在此列表中找到一个(第一个或其他)属性(或方法结果-其他)等于value的对象
找到它最好的方法是什么
以下是测试用例:
类测试:
定义初始值(自身,值):
自我价值=价值
随机输入
值=5
test_list=[范围(1000)内x的测试(random.randint(0100)]]
#我会在帕斯卡做的,我不相信这是接近“Pythonic”的
对于测试列表中的x:
如果x.value==值:
“打印”;我找到了&引用;
打破
我认为使用生成器和reduce()不会有任何区别,因为它仍然会遍历列表
注:value的等式只是一个例子。当然,我们想要得到满足任何条件的元素
next((如果x.value==value,则测试列表中的x代表x),无)
这将从列表中获取与条件匹配的第一项,如果没有匹配的项,则返回None。这是我喜欢的单一表达形式
但是,
测试列表中x的
:
如果x.value==值:
打印(“我找到了!”)
打破
朴素的循环中断版本,是完美的python——它简洁、清晰、高效。要使其与一个衬里的行为相匹配,请执行以下操作:
测试列表中x的
:
如果x.value==值:
打印(“我找到了!”)
打破
其他:
x=无
如果您不将从循环中断开,则这将None分配给x