Python如何判断嵌套列表中元组末位取值是否满足指定条件
实现方案
核心逻辑:遍历每个子列表,提取所有元组的最后一位元素存入集合去重,直接通过集合内容判断返回值即可,无需额外计数操作。
完整可运行代码
x = [[(frozenset({(5, 'Y')}), 5, 'Y')], [(frozenset({(9, 'Y'), (2, 'Y'), (7, 'N'), (3, 'Y')}), 2, 'Y'), (frozenset({(4, 'Y'), (0, 'Y'), (8, 'N'), (1, 'Y')}), 4, 'Y'), (frozenset({(9, 'Y'), (2, 'Y'), (7, 'N'), (3, 'Y')}), 3, 'Y')], [(frozenset({(9, 'Y'), (2, 'Y'), (7, 'N'), (3, 'Y')}), 7, 'N'), (frozenset({(4, 'Y'), (0, 'Y'), (8, 'N'), (1, 'Y')}), 8, 'N')]] result = [] for sub_list in x: # 提取当前子列表所有元组的最后一位标识 flag_set = {tpl[-1] for tpl in sub_list} if flag_set == {'Y'}: result.append('Y') elif flag_set == {'N'}: result.append('N') else: result.append('U') print(result)
运行输出
['Y', 'Y', 'N']
简化写法(一行列表推导式)
result = ['Y' if {t[-1] for t in s} == {'Y'} else 'N' if {t[-1] for t in s} == {'N'} else 'U' for s in x]
内容的提问来源于stack exchange,提问作者Chr_8580
相关产品推荐
相关产品推荐

