【发布时间】:2019-02-11 13:07:37
【问题描述】:
我有以下实现:
from collections import defaultdict
from collections import OrderedDict
prod = [
[1, 'tomato', 'veg', 'Jan-1'],
[1, 'banana', 'fruit', 'Jan-3'],
[2, 'melon', 'fruit', 'Jan-2'],
[3, 'apple', 'fruit', 'Jan-4'],
[2, 'cucumber', 'veg', 'Jan-1']
]
d = defaultdict(list)
for i in range (0, len(prod)):
f_name = prod[i][1]
f_type = prod[i][2]
f_date = prod[i][3]
key = prod[i][0]
d[key].append([f_name, f_type, f_date])
e = OrderedDict(sorted(d.items(), key=lambda t: t[0]))
print ("***************")
print (e)
table_for_graph = []
for key, value in e.iteritems():
table_for_graph.append(value)
print (table_for_graph)
我得到的输出是这样的:
[[['tomato', 'veg', 'Jan-1'], ['banana', 'fruit', 'Jan-3']], [['melon', 'fruit', 'Jan-2'], ['cucumber', 'veg', 'Jan-1']], [['apple', 'fruit', 'Jan-4']]]
我想创建一个这样的列表:
[
['tomato''\n''banana','veg''\n''fruit','Jan-1''\n''Jan-3'],
['melon''\n''cucumber','fruit''\n''veg','Jan-2''\n''Jan-1'],
['apple','fruit','Jan-4']
]
意思是,我想连接具有相同键的项目。 我该怎么做?我还不熟悉遍历 dict。
【问题讨论】:
-
如果你不熟悉迭代字典,你是如何得到代码的?
-
你能检查一下你的输出吗?分隔符不一致。
-
另外,请添加一个普通的 Python 标签
-
感谢疯狂的物理学家!我正在尝试通过编码学习:)
-
range (0, len(prod))==range(len(prod))你可能更愿意使用for el in prod或者更好地重命名for product in products
标签: python dictionary collections