【发布时间】:2020-08-24 08:05:25
【问题描述】:
我一直在研究一个问题,该问题涉及对大量商店订单数据集进行排序,根据一些参数提取商店和用户信息。大多数情况下,这涉及通过使用 for 循环遍历数据集并附加一个新列表来创建字典,如下所示:
sshop = defaultdict(list)
for i in range(df_subset.shape[0]):
orderid, sid, userid, time = df.iloc[i]
sshop[sid].append(userid)
sData = dict(sshop)
#CREATES DICTIONARY OF UNIQUE SHOPS WITH USER DATA AS THE VALUE
shops = df_subset['shopid'].unique()
shops_dict = defaultdict(list)
for shop in shops:
shops_dict[shop].append(sData[shop])
shops_dict = dict(shops_dict)
shops_dict 此时看起来像这样:
{10009: [[196962305]], 10051: [[2854032, 48600461]], 10061: [[168750452, 194819216, 130633421,
62464559]]}
为了进入最后阶段,我不得不重复几次类似的代码行。每次我这样做时似乎发生的事情是字典中的 VALUES 获得了一组方括号。
这是我最后的字典之一:
{10159: [[[1577562540.0, 1577736960.0, 1577737080.0]], [[1577651880.0, 1577652000.0, 1577652960.0]]],
10208: [[[1577651040.0, 1577651580.0, 1577797080.0]]]}
我不完全理解为什么会发生这种情况,除了我认为这与使用 defaultdict(list) 然后使用 dict() 将其转换为字典有关。 除了有点混乱之外,这些额外的括号似乎会导致使用某些函数访问数据时出现一些问题。我知道总共需要两组方括号,一组包含字典键中的所有值,另一组包含该键中的每个特定值集。
我的第一个问题是,是否可以从这样的字典中删除一组特定的方括号? 我的第二个问题是,如果不是 - 是否有更好的方法可以在不使用 defaultdict(list) 并使用所有这些额外的方括号的情况下从旧字典中创建新字典?
非常感谢任何帮助! 谢谢:)!
【问题讨论】:
标签: python list dictionary square-bracket