我有一个字典 dict
,每个键有两个值,如下所示:
dict = {}
dict[name] = x1, x2
假设这本词典中有 10 个条目。我想遍历字典的键,以便我针对字典中的其他键值集对每个键值集执行计算。例如,我想从第一个键开始计算类似 x1_0 + x2_0 - x1_1 + x2_1 的值,其中“_0”表示第一个键的值,“_1”表示与任何其他键的值关联的值。对于所有其他九个 key ,该计算将执行九次。然后我将移动到第二个键值集并针对剩余的九个键执行计算,依此类推。
我曾尝试使用包含相同数据的两个词典来执行此操作,但没有成功。请注意,我已经对值进行了 float 转换,所以这不是问题所在。这是我尝试过的:
for (name_0, (x1_0, x2_0)), (name_1, (x1_1, x2_1)) in zip(dict.iteritems(), dict2.iteritems()):
if name_0 != name_1:
d = x1_0 + x2_0 - x1_1 + x2_1
print d
最佳答案
如果我的理解是正确的,你打算对每个对联进行排列。使用生成的对联对,您将打算执行一些临时计算
令对 Pi 之一是 (Xi, Xj) 其中 Xi 是一个对联 (Xi0, Xi1) 那么公式可以表示为
def calc(x):
return x[0][0] + x[0][1] - x[1][0] + x[1][1]
要创建成对排列,您可以使用 itertools.permutation如下
permutations(_dict.values(), 2)
现在您只需要将对联对与您制定的函数进行映射
map(calc, permutations(d.values(), 2))
关于python - 迭代 Python 中的字典项以执行计算集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31860862/