我想从符合条件的列表中获取第一项.重要的是,生成的方法不会处理整个列表,这可能非常大.例如,以下功能就足够了:
def first(the_iterable, condition = lambda x: True):
for i in the_iterable:
if condition(i):
return i
Run Code Online (Sandbox Code Playgroud)
这个函数可以用这样的东西:
>>> first(range(10))
0
>>> first(range(10), lambda i: i > 3)
4
Run Code Online (Sandbox Code Playgroud)
但是,我想不出一个好的内置/单线来让我这样做.如果我不需要,我不特别想复制这个功能.是否有内置方法可以使第一个项目符合条件?
我有这样的清单
myList = [0.0 , 0.0, 0.0, 2.0, 2.0]
Run Code Online (Sandbox Code Playgroud)
我想找到列表中第一个数字的位置,该位置不等于零.
myList.index(2.0)
Run Code Online (Sandbox Code Playgroud)
适用于此示例,但有时第一个非零数字将为1或3.
有这么快的方法吗?
我有一个功能.matchCondition(a)
,取整数并返回True或False.
我有一个10个整数的列表.我想返回列表中的第一个项目(与原始列表的顺序相同),matchCondition
返回True.
尽可能诡异.
我需要将数据库行对象列表加载到内存中,然后通过其唯一ID获取其中一行.是否有一种干净,pythonic方式通过属性值从列表中查找单个对象?或者我只是循环和比较?
在Python中是否有一个内置函数,它将返回给定列表和验证函数的单个结果?
例如,我知道我可以做以下事情:
resource = list(filter(lambda x: x.uri == uri, subject.resources))[0]
Run Code Online (Sandbox Code Playgroud)
以上将基于ther resource.uri字段从资源列表中提取资源.虽然这个字段值是uinique,但我知道我要么有1个或0个结果.filter
函数将迭代整个列表.在我的情况下它的20个元素,但我想知道是否有一些其他内置方法来停止第一次匹配的迭代.
我在python中有一个对象列表:
accounts = [
{
'id': 1,
'title': 'Example Account 1'
},
{
'id': 2,
'title': 'Gow to get this one?'
},
{
'id': 3,
'title': 'Example Account 3'
},
]
Run Code Online (Sandbox Code Playgroud)
我需要获得id = 2的对象.
当我只知道对象属性的值时,如何从此列表中选择适当的对象?
/sf/answers/690806581/找到第一项.
reverse
在应用上述解决方案之前,我可以考虑先做.但后来我最终reverse
会得到两个可能被避免的东西.
难道还有比使用两个更好的解决方案reverse
和next
?