簡體   English   中英

如何使用列表值作為 Z3py 中的字典索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM