gpt4 book ai didi

python - 对字典中的值执行循环移位

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:08 25 4
gpt4 key购买 nike

我必须构建一个看起来像这样的大字典

{'A' : {'A' : 1, 'B' : 0, 'C' : 0}, 
'B' : {'A' : 0, 'B' : 1, 'C' : 0}}
............................

每个内部字典移动一个位置。有什么方法可以使这个过程自动化。

如果它是 ndarray,我可以循环使用 np.roll() 函数,所以我想知道我是否可以用字典做一些类似的事情。

最佳答案

您可以使用 collections.deque对于快速字典值(列表)移位(deque rotate 函数)但是字典没有特定的函数,你应该自己做,例如:

# shift dct (dict) values by n to right if n is positive
# and to left if n is negative; returns new dictionary
def dict_roll(dct, n):
shift_values = deque(dct.values())
shift_values.rotate(n)
return dict(zip(dct.keys(), shift_values))

演示:

>>> d = {'A': {'A': 1, 'C': 0, 'B': 0}, 'B': {'A': 0, 'C': 0, 'B': 1}}
>>> for k in d:
... d[k] = dict_roll(d[k], 1)
...
>>> d
{'A': {'A': 0, 'C': 1, 'B': 0}, 'B': {'A': 1, 'C': 0, 'B': 0}}
>>> for k in d:
... d[k] = dict_roll(d[k], 1)
...
>>> d
{'A': {'A': 0, 'C': 0, 'B': 1}, 'B': {'A': 0, 'C': 1, 'B': 0}}

关于python - 对字典中的值执行循环移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com