我有一个字典,其中的键是元组:
submatrix = {('W', 'F'): 1, ('L', 'R'): -2, ('S', 'P'): -1,...}To字典包含对称矩阵的一半,并且以下内容是等价的
('W', 'F'): 1
('F', 'W'): 1我想返回给定元组的值,而不考虑顺序。如果元组元素的顺序不匹配,则此操作失败:
for i in range(1,len(y)+1):
for j in range (1,len(x)+1):
if(submatrix[(x[j-1], y[i-1])]):我也试过了:
if(submatrix[(x[j-1], y[i-1])] or submatrix[(y[j-1], x[i-1])])但这却失败了
查尔斯
发布于 2018-02-23 05:23:18
将密钥转换为frozensets
submatrix = {('W', 'F'): 1, ('L', 'R'): -2, ('S', 'P'): -1}
d = {frozenset(k): v for k, v in submatrix.items()}
d[frozenset({'W', 'F'})] # 1
d[frozenset({'F', 'W'})] # 1这是因为frozensets是不可变的和无序的。
https://stackoverflow.com/questions/48936789
复制相似问题