[[1, '34', '44'], [1, '40', '30', '41'], [1, '41', '40', '42'], [1, '42', '41', '43'], [1, '43', '42', '44'], [1, '44', '34', '43']]
Run Code Online (Sandbox Code Playgroud)
我有一份清单清单.我的目的是检查是否有任何一个子列表与其他子列表有任何共同点(不包括要比较的第一个索引对象).如果它有任何共同点,那么统一这些子列表.
例如,对于这个例子,我的最终答案应该是这样的:
[[1, '34, '44', '40' '30', '41', '42', '43']]
Run Code Online (Sandbox Code Playgroud)
我可以理解我应该将子列表转换为集合,然后使用union()和intersection()操作.但我坚持的是如何比较每个集/子列表.我不能在列表上运行循环并逐个比较每个子列表,因为列表的内容将被修改,这将导致错误.
我想知道的是有没有有效的方法来比较所有子列表(转换为集合)并获得它们的并集?
我有什么作为输入:
list: [[2, 4], [2, 6], [2, 8]]
Run Code Online (Sandbox Code Playgroud)
我想要的输出:
set: 2,4,6,8
Run Code Online (Sandbox Code Playgroud)
我目前在做什么(不工作):
def convert(input_list):
all_nums = set([arr[0], arr[1]] for arr in input_list)
return all_nums
Run Code Online (Sandbox Code Playgroud)
我知道我可以手动遍历父数组并将子数组的内容添加到set这样的:
def convert(input_list):
all_nums = set()
for inner_list in input_list:
all_nums.add(inner_list[0])
all_nums.add(inner_list[1])
return all_nums
Run Code Online (Sandbox Code Playgroud)
all_nums.add(inner_list[0], inner_list[1])吗?