查询数据库返回的结果
["www.google.com","2019-1-2","102"],
["www.fb.com","2019-1-4","292"],
["www.amazon.com","2019-3-2","142"],
["www.google.com","2019-6-2","162"],
["www.fb.com","2019-8-2","52"],
["www.fb.com","2019-3-2","522"],
["www.google.com","2019-8-5","591"]我想要的列表样式结果:
["www.google.com",["2019-1-2","102"],["2019-6-2","162"],["2019-8-5","591"]],
["www.fb.com",["2019-1-4","292"],["2019-8-2","52"],["2019-3-2","522"]],
["www.amazon.com",["2019-3-2","142"]]或者一种字典风格。
{"www.google.com":[["2019-1-2","102"],["2019-6-2","162"],["2019-8-5","591"]]},
{"www.fb.com":[["2019-1-4","292"],["2019-8-2","52"],["2019-3-2","522"]]},
["www.amazon.com":["2019-3-2","142"]}尝试比较列表的第一个元素
temp = arr[0]
for x in result:
if x[0] == temp发布于 2019-08-14 09:29:36
您可以使用defaultdict和一些列表拼接来解决此问题
from collections import defaultdict
data = defaultdict(list)
db = [["www.google.com","2019-1-2","102"],
["www.fb.com","2019-1-4","292"],
["www.amazon.com","2019-3-2","142"],
["www.google.com","2019-6-2","162"],
["www.fb.com","2019-8-2","52"],
["www.fb.com","2019-3-2","522"],
["www.google.com","2019-8-5","591"]]
for d in db:
data[d[0]].append(d[1:])
print(data)将打印
defaultdict(list,
{'www.amazon.com': [['2019-3-2', '142']],
'www.fb.com': [['2019-1-4', '292'],
['2019-8-2', '52'],
['2019-3-2', '522']],
'www.google.com': [['2019-1-2', '102'],
['2019-6-2', '162'],
['2019-8-5', '591']]})发布于 2019-08-14 09:26:29
使用dict.setdefault
d = {}
for x, y, z in l:
d.setdefault(x, []).append([y, z])
print(d)或者使用单行字典理解:
print({x: [[j, k] for i, j, k in l if i == x] for x, y, z in l})https://stackoverflow.com/questions/57487052
复制相似问题