python - 从“list_a”中删除“list_b”中存在的所有值
问题描述
我是 Python 和编码的新手,我正在迎接挑战。我正在尝试从“list_a”中删除“list_b”中存在的所有值。通过函数传递的输入必须是列表,它们不能是任何其他数据类型。
例如,[1,2,2,2,3], [2] 应该返回 [1, 3]。
我的尝试如下,但它返回 [1, 2, 3] 这是错误的。我被困住了,希望能得到一些帮助,帮助我以正确的方式做到这一点。
def changeup(list_a, list_b):
for i in list_b:
for k in list_a:
if k == i:
list_a.remove(k)
return list_a
changeup([1,2,2,2,3],[2])
#This is returning [1, 2, 3]. It should be returning [1, 3]. Not sure why?
解决方案
尝试这个:
list_a = list(set([item for item in list_a if item not in list_b]))
如果要保留重复值。
list_a = [item for item in list_a if item not in list_b]
遍历一个列表以查看该项目是否在另一个列表中
推荐阅读
- uiimagepickercontroller - 在 iOS 14.2 中使用相机录制视频时显示黑屏
- java - 如何将后端的图像直接写入图像标签的 src 属性?
- r - 用 R 估计 1850 年到 1950 年间每一年的存活人数
- visual-studio-code - 为什么`dae`命令会删除文件中的所有内容?
- c++ - 编译器不会在代码块中编译 graphics.h
- html - 如何使我的复选框在表单中对齐?
- python - 错误:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。无法更新数据框列
- c# - 在抽象类的构造函数中调用抽象方法
- xcode - 'git初始化-b
' 终端中的命令引发“未知开关”错误 - javascript - Expo React Native WebView 在 Android 上的应用中打开谷歌地图