当前位置: 首页 > 面试题库 >

在列表中查找属性等于某个值(满足任何条件)的对象

瞿健
2023-03-14
问题内容

我有对象清单。我想在此列表中找到一个属性(或方法结果-任意)等于的(第一个或任何对象)对象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 isn't anywhere near 'Pythonic'
  for x in test_list:
      if x.value == value:
          print "i found it!"
          break

我认为使用生成器reduce()不会有任何区别,因为它仍然会遍历list。

ps .:方程式to value只是一个例子。当然我们要获得满足任何条件的元素。


问题答案:
next((x for x in test_list if x.value == value), None)

这将从列表中获取与条件匹配的第一项,None如果没有匹配项,则返回。这是我首选的单表达式形式。

然而,

for x in test_list:
    if x.value == value:
        print "i found it!"
        break

天真的循环中断版本完全是Pythonic的-简洁,清晰和高效。为了使其与单线行为相匹配:

for x in test_list:
    if x.value == value:
        print "i found it!"
        break
else:
    x = None

如果你不在循环之外,这将分配None给。xbreak



 类似资料:
  • 本文向大家介绍Python 找到列表中满足某些条件的元素方法,包括了Python 找到列表中满足某些条件的元素方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇Python 找到列表中满足某些条件的元素方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我将不胜感激创建此查询的任何帮助。我尝试了好几种方法,但都没有碰到运气。由于我的问题很难表达,因此我将举一个我想做的简单例子。我的数据在结构上类似于以下内容: 如果我有两种特定颜色的ID,我想创建一个查询以返回类型。例如,我想查找所有具有蓝色和红色的ID。然后查询将返回: A和B的返回顺序并不重要。数据集很大,我希望有许多ID可以同时满足这两个条件(也许是50,000个左右)。我要指出

  • 我想在java中编写一个函数,该函数接收参数并返回1或0,在以下条件下: > 如果数组的长度是奇数,如果奇数之和大于偶数之和,则返回1,否则返回0。 如果数组的长度是偶数,请检查小于或等于10的最大数字。如果是奇数,则返回1。如果是偶数,则返回0。 例如,使用以下数组: 第一个数组返回 1,因为 = 20 大于 = 14。第二个数组返回 0,因为有 是奇数,但 10 大于 7。 我已经试过了,请检

  • 我有一个清单,必须找到具体的对象。我必须按学生平均价值排序列表,并创建函数来搜索具有第二高价值的学生。如果与其他学生重复,则按函数返回较小的学生。这个任务的另一个要求(要妥善解决)是我不能创建任何对象。下面我留下了我正在使用的类的代码: 现在,我尝试通过对stream进行反向排序来解决这个问题,然后移除stream的第一个值,并比较stream的两个下一个对象并返回正确的一个。我可以使用for循环

  • 我知道使用ES6 JavaScript对象,您可以使用动态声明变量为对象键,例如: <代码>{[2]:“四!”} 给出输出{code>{“4”:“four!”} 问题是,可以采用类似的方法通过变量等内联方式添加整个属性吗?意思是,假设我有以下测试对象: 如果满足某个条件,我是否可以在内联对象中为someOtherProp编写任何内容,只将其添加到对象中?例如(伪代码),类似这样的东西 会像上面一样