擅长:python、mysql、java
<p><code>next</code>内置函数(<a href="https://docs.python.org/3/library/functions.html#next" rel="nofollow noreferrer">docs</a>)如何:</p>
<pre><code>>>> data = [
... {
... 'id': 'abcd738asdwe',
... 'name': 'John',
... 'mail': 'test@test.com',
... },
... {
... 'id': 'ieow83janx',
... 'name': 'Jane',
... 'mail': 'test@foobar.com',
... }
... ]
>>> search_id = 'ieow83janx'
>>> next(x for x in data if x['id'] == search_id)
{'id': 'ieow83janx', 'name': 'Jane', 'mail': 'test@foobar.com'}
</code></pre>
<p>编辑:</p>
<p>如果找不到匹配项,则会引发<code>StopIteration</code>,这是处理缺勤的一种很好的方法:</p>
<pre><code>>>> search_id = 'does_not_exist'
>>> try:
... next(x for x in data if x['id'] == search_id)
... except StopIteration:
... print('Handled absence!')
...
Handled absence!
</code></pre>