Python编写even_value_set函数从三个列表提取所有偶数返回集合
even_value_set 函数实现
你之前的实现未生效的核心原因是仅完成了列表/集合的合并操作,缺少了偶数筛选的步骤,以下是可直接运行的实现方案:
基础遍历实现
def even_value_set(list1, list2, list3): even_set = set() # 遍历三个输入列表 for current_list in [list1, list2, list3]: for num in current_list: # 判断是否为偶数 if num % 2 == 0: even_set.add(num) return even_set
简洁集合推导式实现
def even_value_set(list1, list2, list3): return {num for lst in [list1, list2, list3] for num in lst if num % 2 == 0}
基于union方法的实现
如果希望用union方法完成,可分别对每个列表筛选偶数后再取并集:
def even_value_set(list1, list2, list3): s1 = set(x for x in list1 if x % 2 == 0) s2 = set(x for x in list2 if x % 2 == 0) s3 = set(x for x in list3 if x % 2 == 0) return s1.union(s2, s3)
注意:你提供的测试代码中
import random语句位于test()调用之后,运行前需要将import random移动到test函数定义的上方,否则会触发NameError: name 'random' is not defined报错。
内容的提问来源于stack exchange,提问作者Thenoobcoder
相关产品推荐
相关产品推荐

