我有这段代码,它工作正常,是最小的和可重复的。它使用lists
和tuples
。鉴于列表和元组对大量数据的缓慢,我想改变整个设置,并使用dictionaries
来加快性能。
所以我想把这个队列块转换成类似于字典的东西。
这段代码的目的是创建变量x
和y
(数学数据的计算),并使用append和元组将它们添加到列表中,然后出于某些目的挖掘这些数字。
我如何在需要的地方添加dictionaries
并替换为list/append
代码?谢谢!
带元组和列表的版本
mylist = {('Jack', 'Grace', 8, 9, '15:00'): [0, 1, 1, 5],
('William', 'Dawson', 8, 9, '18:00'): [1, 2, 3, 4],
('Natasha', 'Jonson', 8, 9, '20:45'): [0, 1, 1, 2]}
new = []
for key, value in mylist.items():
#create variables and perform calculations
calc_x= sum(value)/ len(value)
calc_y = (calc_x *100) / 2
#create list with 3 tuples inside
if calc_x > 0.1:
new.append([[key], [calc_x], [calc_y]])
print(new)
print(" ")
#example for call calc_x
print_x = [tuple(i[1]) for i in new]
print(print_x)
我想写这样的东西,但我觉得不合适,所以看都不要看。如果可能的话,我有两个要求:
- 我希望
sum(value)/ len(value)
和(calc_x *100) / 2
继续拥有自己的变量calc_x
和calc_y
,以便它们可以在append中单独调用***,如您所见 - 在
new
变量中,我希望能够在需要我的时候调用变量,例如for example i do for print_x = [tuple(i[1]) for i in new]
。谢谢
2条答案
按热度按时间ndasle7k1#
如果确实想提高性能,可以使用
Pandas
(或Numpy
)对数学运算进行矢量化:输出:
rnmwe5a22#