【发布时间】:2021-02-08 17:09:08
【问题描述】:
以下是我从字典列表和元组中的排序数据中提取的代码
def compress(data):
res = []
for idx, sub in enumerate(data, start=0):
if idx == 0:
res.append(tuple(sub.keys()))
res.append(list(sub.values()))
else:
res.append(list(sub.values()))
return tuple(res)
data = [
{"a": 1, "b": 2, "c": 3},
{"a": 4, "c": 6, "b": 5}
]
print(compress(data))
预期结果是:
(('a', 'b', 'c'), [(1, 2, 3), (6, 5, 4)])
我的代码无法返回预期的结果。
【问题讨论】:
-
你不是说:
(('a', 'b', 'c'), [(1, 2, 3), (4, 5, 6)])? -
def compress(data): return (tuple(data[0].keys()), [tuple(x.values()) for x in data]) -
@Booboo 不行,结果必须是(6,5,4)
-
6, 5, 4 分别是键 c, b 和 a 的值。你是说我们应该使用这些值吗?
-
def compress(data): return (('a', 'b', 'c'), [(1, 2, 3), (6, 5, 4)])似乎有效,但我无法解释原因。
标签: python list sorting dictionary tuples