2024-03-29 14:30:41 发布
网友
我的字典看起来像:
A = { (0,0): [(0, 0), (1, 2), (3, 2)], (1,1): [(2, 0)], (10,1): [(0, 0), (2, 1)] }
给定一个新元组,如何检查该元组(x0, y0)是否存在于字典值的任何数组中?你知道吗
(x0, y0)
我试着反复浏览这个列表
for i, v in iteritems(A): if (x0, y0) in v: return True
有没有办法让这成为一个单一的解决方案?你知道吗
使用^{} function并将循环放入生成器表达式中:
return any((x0, y0) in v for v in A.itervalues())
any()函数一次推进生成器一步,并在(x0, y0) in v测试返回true时返回True(提前退出)。这意味着只需完成最小的工作量。你知道吗
any()
(x0, y0) in v
True
演示:
>>> A = { ... (0,0): [(0, 0), (1, 2), (3, 2)], ... (1,1): [(2, 0)], ... (10,1): [(0, 0), (2, 1)] ... } >>> x0, y0 = 2, 0 >>> any((x0, y0) in v for v in A.itervalues()) True >>> x0, y0 = 2, 42 >>> any((x0, y0) in v for v in A.itervalues()) False
您可以执行以下操作:
value = (2, 1) found = False for vl in A.values(): if value in vl: found = True break print found
使用^{} function 并将循环放入生成器表达式中:
any()
函数一次推进生成器一步,并在(x0, y0) in v
测试返回true时返回True
(提前退出)。这意味着只需完成最小的工作量。你知道吗演示:
您可以执行以下操作:
相关问题 更多 >
编程相关推荐