【发布时间】:2023-04-09 23:03:02
【问题描述】:
我想使用 List Comprehension 方法将以下嵌套字典转换为列表的嵌套列表以获得更好的性能:
n = {
"ETHBTC": {
"2021-09-04 01:55:00": {
"open": 0.078998,
"close": 0.079007,
"volume": 44.952200000000005
},
"2021-09-04 01:56:00": {
"open": 0.079005,
"close": 0.078959,
"volume": 68.62790000000001
},
"2021-09-04 01:57:01": {
"open": 0.07896,
"close": 0.078962,
"volume": 131.6615000000001
},
"2021-09-04 01:58:00": {
"open": 0.078966,
"close": 0.078988,
"volume": 157.38520000000005
}
}
"BTCUSDT": {
"2021-09-04 01:55:00": {
"open": 49730.55,
"close": 49710.01,
"volume": 28.57857999999999
},
"2021-09-04 01:56:00": {
"open": 49710.0,
"close": 49681.35,
"volume": 19.088980000000017
},
"2021-09-04 01:57:00": {
"open": 49681.36,
"close": 49737.05,
"volume": 20.885500000000008
},
"2021-09-04 01:58:00": {
"open": 49737.06,
"close": 49757.33,
"volume": 35.782369999999965
}
}
预期输出与“关闭”值一起说,我试图在一个内衬代码中执行此操作以提高效率:
result = ["ETHBTC"[0.079007, 0.078959, 0.078962, 0.078988],
"BTCUSDT"[49710.01, 49681.35, 49737.05, 49757.33]]
【问题讨论】:
-
您能告诉我们您已经尝试过什么吗?另外,效率是什么意思?单行并不总是最有效的,无论是在性能还是可读性方面。
-
这样做的目的是什么?我不明白为什么你不能只使用字典
-
效率是指更好的性能。据我了解,列表理解比 for 循环更好。我想在将其转换为列表后计算移动平均线。
-
@ScrappyCoco 是的,但实际上不是。老实说,这取决于,如果你问这类问题,那么你需要重新考虑你在 python 中的技术或你的数据模型。在你拥有一个正常运行的产品之前,不要担心 python 的效率。如果你想要这种规模的效率,那么我认为 python 可能不是首选语言。
标签: python dictionary list-comprehension