如何用Python判断嵌套列表中的子列表是否包含相同元素?
判断嵌套列表中所有子列表是否包含相同元素的Python实现
针对你的需求,这里提供两种常见场景的实现方案:
1. 严格匹配(子列表完全一致,包括元素顺序)
这种方式要求所有子列表的元素顺序和内容完全相同,和你给出的示例逻辑一致。
实现代码:
def all_sublists_equal(nested_list): if not nested_list: return True reference = nested_list[0] return all(sublist == reference for sublist in nested_list)
测试验证:
- 输入
[['A', 'B'], ['A', 'B'], ['A', 'B']]→ 返回True - 输入
[['B', 'C'], ['Z', 'C']]→ 返回False
2. 忽略元素顺序的匹配(仅要求元素集合一致,含重复元素)
如果需要忽略子列表的元素顺序,同时考虑重复元素的数量(比如 ['A','A','B'] 和 ['A','B','A'] 视为相同,但和 ['A','B','B'] 不同),可以通过排序后比较实现:
实现代码:
def all_sublists_same_elements(nested_list): if not nested_list: return True reference_sorted = sorted(nested_list[0]) return all(sorted(sublist) == reference_sorted for sublist in nested_list)
测试验证:
- 输入
[['A', 'B'], ['B', 'A']]→ 返回True - 输入
[['A','A','B'], ['A','B','B']]→ 返回False
边界情况说明
- 若传入的嵌套列表为空(
[]),两个函数都会返回True,你可以根据实际需求修改这个默认行为 - 如果子列表的长度不同,两种方法都会直接返回
False,因为长度不同的列表不可能满足元素完全相同的条件
内容的提问来源于stack exchange,提问作者Coder20
相关产品推荐
相关产品推荐

