据我了解,您本质上想要做的是扁平化您的列表,同时保留独特的项目。
可以通过将list 转换为set 然后再转换回list 来实现唯一项。
拆包部分在this 帖子中得到了很好的解释。这是适合您的工作代码-
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]}
如预期的那样