【发布时间】:2021-03-16 14:01:57
【问题描述】:
我有一个字典列表,每个字典都由字符串数组和浮点数组成,如下所示:
Product1 = {
'Name': 'TLSK',
'Name2': 'B1940',
'Tagid': '23456222',
'Cord': np.array(['09:42:23', '9', '-55:52:32', '9']),
'Cord2': np.array([432.34, 222.115]),
'Ref': 'Siegman corp. 234',
'Exp': 22.0,
'CX': np.array([0.00430, 0.00069, 0.00094])
}
我有时需要访问 Dictionary 的某些元素以进行进一步计算。我要做的是首先将它们合并如下:
Products = (Product1, Product2, Product3, ....)
然后我使用for循环来存储每个字典的某个元素如下
Expall=[]
for i in Products:
exp = i['Exp']
Expall.append(exp)
对我来说,这似乎是一种低效/糟糕的编码,我想知道是否有更好的方法来做到这一点。我来自 IDL 语言,例如,在 IDL 中,您可以在没有 for loop 这样的情况下访问该信息。 Expall = Products[*]['Exp']
大多数时候,我什至必须先存储数据,然后我使用pickle in Python 来做到这一点。由于我对 python 有点陌生,而且我很少听到关于 pandas 等的好消息,所以我想看看是否有更有效/更快的方法来处理所有这些东西。
【问题讨论】:
-
第一个对象是字典,不是元组
-
Python 中没有用于循环元组并从元素
dict中获取值的超级语法(理解除外)。您可以自己编写,或者如果这会冒犯您的“秩序”感,请将操作隐藏在函数中。numpy具有适用于“整个”数组的快速方法,但这仅适用于数字元素。 (不是字典数组)。 -
您真的是从一个字典列表开始,将它们命名为
product1等,然后将它们收集到tuple中吗?还是Products那个列表?pickle是怎么回事?是那种将列表转移到 IDL 的方式吗?
标签: python python-3.x numpy tuples pickle