如何转换包含键和列表值列表的字典?

How to convert the dictionary containing keys and list of list value?

from collections import defaultdict

my_dict = defaultdict(list)    
for k, v in zip(df_Group.guest_group, df_Group.list_guest):
  for item in v:
    v.append(item)    
  my_dict[k].append(set(v))

据我了解,您本质上想要做的是在保留独特项目的同时展平您的列表。 独特的项目可以通过将 list 转换为 set 然后再转换回 list 来实现。 拆包部分在 this post 中有很好的解释。这是适合您的工作代码 -

df_dict = {
    'Group1': [[1,2,3,4], [1, 2, 5, 6 ]],
    'Group2': [[1,2], [2,3],[2,3,4]]
}

final_dict = {}

for k, v in df_dict.items():
    # flatten the list using double list comprehension
    flat_list = [item for sublist in v for item in sublist]
    final_dict[k] = list(set(flat_list))

这给出了 final_dict 作为 -

{'Group1': [1, 2, 3, 4, 5, 6], 'Group2': [1, 2, 3, 4]}

请告诉我这是否回答了您的问题。

编辑列表之间的整数值 - 如果我们有一个介于两者之间的整数值的列表,那么您将得到 int object not iterable error,要解决它,我们可以检查实例为 int 并自己制作项目列表

工作代码-

df_dict = {
    'Group1': [[1,2,3,4], 3, [1, 2, 5, 6 ]],
    'Group2': [[1,2], [2,3],[2,3,4]],
}

final_dict = {}

for k, v in df_dict.items():
    # making a new list 
    new_list = []
    for item in v:
        # for int we will convert it to 1 length list
        if isinstance(item, int):
            item = [item]
        for ele in item:
            new_list.append(ele)
    final_dict[k] = list(set(new_list))

final_dict

最终命令 -

{'Group1': [1, 2, 3, 4, 5, 6], 'Group2': [1, 2, 3, 4]}

符合预期