【发布时间】:2021-10-18 20:57:46
【问题描述】:
我有一个字典列表,它们都有相同的键。我有一个键的特定值,并且想要访问/打印包含该特定值的字典。除了循环整个列表,检查键的相应值并使用 if 语句将其打印出来之外,我想不出任何办法,也就是说,如果给定的值与键匹配。
for enrollment in enrollments:
if enrollment['account_key'] == a:
print(enrollment)
else:
continue
这似乎并不是处理任务的最有效方式。有什么更好的解决方案?
【问题讨论】:
-
您打算多次执行此操作吗?还是只有一次?请提供一些示例数据
-
你是对的,这不是处理任务的最有效方式,但这与你的数据结构不利于这种类型的操作这一事实有关。执行此任务的正确方法是使用允许此类查找的更合适的数据结构,例如字典字典,假设您的
account_key值都是唯一的。 -
你不需要 else/continue
-
鉴于您的数据结构,别无选择。怎么会有?如果不检查所有值,您不可能知道该值在哪里。如果您知道确实有一个,您可以随时在
print之后break停止进一步查找。 -
如果替代方案是
print(“\n”.join([v for v in enrollments if v.get(‘account_key’)==‘a’])),我宁愿使用三行for循环。
标签: python python-3.x dictionary