gpt4 book ai didi

具有列表理解的Python字典值分配

转载 作者:太空狗 更新时间:2023-10-30 03:03:34 24 4
gpt4 key购买 nike

我想使用列表的 python 字典,将列表转换为 numpy 数组,然后使用列表理解将它们恢复到字典中。

例如,如果我有一本字典

myDict = {'A':[1,2,3,4], 'B':[5,6,7,8], 'C':'str', 'D':'str'}

我希望将键 A 和 B 下的列表转换为 numpy 数组,但保留字典的其他部分不变。结果

myDict = {'A':array[1,2,3,4], 'B':array[5,6,7,8], 'C':'str', 'D':'str'}

我可以用 for 循环来做到这一点:

import numpy as np

for key in myDict:
if key not in ('C', 'D'):
myDict[key] = np.array(myDict[key])

但是可以通过列表理解来做到这一点吗?有点像

[myDict[key] = np.array(myDict[key]) for key in myDict if key not in ('C', 'D')]

或者实际上,对于长列表的大型词典来说,实现这一目标的最快最有效的方法是什么。谢谢,实验室垃圾

最佳答案

对于 Python 2.7 及更高版本,您可以使用 dictionary comprehension :

myDict = {'A':[1,2,3,4], 'B':[5,6,7,8], 'C':'str', 'D':'str'}
myDict = {key:np.array(val) if key not in {'C', 'D'} else val for key, val in myDict.iteritems()}

如果您低于 2.7 版(因此没有字典理解),您可以:

myDict = {'A':[1,2,3,4], 'B':[5,6,7,8], 'C':'str', 'D':'str'}
dict((key, np.array(val) if key not in {'C', 'D'} else val for key, val in myDict.iteritems())

关于具有列表理解的Python字典值分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18480990/

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