python-3.x - 使用 set(list).difference 和条件语句引发异常
问题描述
我有两个清单:
List1 = [A,B,C,D,E,F,G,H]
list2 = [A,B,C,D]
我想确保 list1 至少包含 list2 的所有元素(顺序无关紧要)。如果不是,我想提出一个异常。
set = set(list2).difference(List1)
if set != "":
raise Exception('Missing required columns',set)
但是打印set
变量返回这个:set()
。我不确定如何解释它。我希望有一个空字符串。我怎样才能建立我的条件语句呢?我觉得我没有正确地做到这一点。
解决方案
逻辑有2个问题。
您正在分配
set
的结果set.difference
。这可能是不可取的。您正在将 a
set
(由返回set.difference
)与str
(""
) 进行比较,因此逻辑将始终引发异常。
也许尝试:
diffset = set(list2).difference(List1)
if diffset:
raise Exception(f'Missing required columns {diffset}')
推荐阅读
- python - 如何从pyspark中的另一列中找到一列的顶级层次结构?
- python - getLayerNames() 和 getUnconnecteddOutLayers() 函数的工作和输出是什么?
- asp.net - Sockets.receive 停止接收,但仍有数据传入
- angular - 无法访问子组件
- python - 我需要使用 Robot Framework 从 YAML 文件中获取值
- video-recording - Agora IO云录制停止功能获取uploadStatus unknow和code 435
- kendo-ui - Kendo UI Grid Tabstrip - 如何使用自定义按钮查看第二个选项卡中的详细信息
- java - java nio select和linux epoll有什么区别?
- matplotlib - 在 plt.hist 函数中使用 density=True 后 y 轴值可以大于 1 吗?
- batch-file - 如果计划任务运行时间过长,如何运行任务