python字典中的多个值
我有以下格式的数据(保存在列表中) 现在,我基本上想根据类别来划分项目。。 基本上是一个字典,其中key是类别,其余内容(id、price、data)是它的值 我已经创建了一个datastructure,让datastructre“item”具有上述四个属性(id、price、date、category) 所以基本上我想要的是一本以下形式的字典:python字典中的多个值,python,dictionary,Python,Dictionary,我有以下格式的数据(保存在列表中) 现在,我基本上想根据类别来划分项目。。 基本上是一个字典,其中key是类别,其余内容(id、price、data)是它的值 我已经创建了一个datastructure,让datastructre“item”具有上述四个属性(id、price、date、category) 所以基本上我想要的是一本以下形式的字典: {1: [item_1,item_2....], 2:[item....]} 我该怎么做。。 由于一个键中有许多值,因此我知道它将使用defaul
{1: [item_1,item_2....], 2:[item....]}
我该怎么做。。
由于一个键中有许多值,因此我知道它将使用defaultdict。。但我仍然无法回避这一点。
谢谢
或者,在没有默认的情况下:
output = {}
for item, cat in ((x[:-1], x[-1]) for x in data):
output.setdefault(cat, []).append(item)
示例输出:
>>> data = [
... (1, 123, "somedate", "boy"),
... (3, 435, "anotherdate", "boy"),
... (23, 123, "moredate", "girl"),
... ]
>>> output = {}
>>> for item, cat in ((x[:-1], x[-1]) for x in data):
... output.setdefault(cat, []).append(item)
...
>>> print output
{'boy': [(1, 123, 'somedate'), (3, 435, 'anotherdate')], 'girl': [(23, 123, 'moredate')]}
一种方法是使用字典,其中每个值都是项目列表(id、价格、日期),关键是类别 大致如下,其中
d
是一个字典,c
是一个类别,itm
是一个元组/项:
def insert(d, c, itm):
if not c in d:
d[c] = [itm]
else:
d[c].append(itm)
假设当前数据存储在列表
list\u data
中,我认为您需要这样的数据:
dict_data = defaultdict(list)
for item in list_data:
dict_data[item.category].append(item)
如果每个项目都是元组而不是对象,请使用
item[3]
而不是item.category
我不完全理解您的问题。为什么python dict不适合您?
def insert(d, c, itm):
if not c in d:
d[c] = [itm]
else:
d[c].append(itm)
dict_data = defaultdict(list)
for item in list_data:
dict_data[item.category].append(item)