[英]How to use list value as the dictionary indices in Z3py
我有一个 python 数组(Arr),其中 j 个 integer 元素,一个 Z3 列表(X),其值为 z3 Int 变量和一个 Z3 字典(D),其值为 Z3 Bool 变量。
例如:
X = [ [ x_0_0, x_0_1, …, x_0_j], [ x_1_0, x_1_1, …, x_1_j], … [ x_i_0, x_i_1, …, x_i_j] ] X[0] = Arr /* Arr is python integer array */ D = { (x, i, j): D_x_i_j } for all i and j, and where x is the value present at X[i][j] location.
X[i 1 ][j] 的剩余值由求解器根据 D 值决定,即真/假,其中 1<=i 1 <=i。
现在这些求解的 X 值是 D 字典的键值。
因此,我想将这些值用作字典的键索引。
我的问题是如何使用 Z3 列表值作为 Z3 字典的键值或另一个 z3 列表的索引?
您可以将列表转换为tuple
。 Tuples
是可散列的,因此是有效的字典键。
d = {(x, i, j): D_x_i_j}
X[0] = Arr # [x, i, j]
key = tuple(X[0])
print(d[key]) # yields D_x_i_j
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.