在不遍历列表的情况下在列表中查找字典的值

Look for value of dictionaries in a list without loop over the list

我是 Python 的新手,我需要一些帮助。
我需要在列表中的字典中搜索数字。
我有一个看起来像这样的长列表:
userinfo= [{"username": "root", "uid": 0, "try": {"P0000": 100}}, {"username": "Jack", "uid": 1, "try": {"P0000": 100}}, {"username": "Mike", "uid": 3, "try": {"P0000": 100}}, {"username": "Helen", "uid": 7, "try": {"P0000": 100}} ... ]
(uid 是有序的)我想知道是否有某种方法可以搜索等于某个整数的 uid(例如 200),而无需遍历整个列表。

我可以搜索 'uid' 的唯一方法是遍历整个列表,看看是否有一些 uid 等于整数,如果找到大于整数的 uid 或找到一个 uid 等于它。但这太慢了。或者如果我选择二进制搜索会有帮助吗? 如果您能提供帮助,非常感谢。

试试这个。使用列表理解来搜索特定的 id 和过滤值是空的,即 ''.

search_id = 3
val = list(filter(None, [value if value['uid'] == search_id else '' for value in userinfo]))
print(val)

输出

[{'username': 'Mike', 'uid': 3, 'try': {'P0000': 100}}]