python - python:返回没有给定元素的列表的函数
问题描述
我熟悉list.remove
,它将通过删除传递元素的第一个实例来改变列表,如果元素不存在则引发值错误。
我正在寻找的是一个不会改变列表的函数,而是返回没有给定元素的列表副本。因此,例如,而不是执行
l = [1,2,3]
l.remove(2)
我会执行
l = [1,2,3].remove(2)
这样做的目的是让将这种类型的逻辑放入 dict 定义中变得更简单一些。所以,而不是:
l = [1,2,3]
l.remove(2)
d = {
'theList': l
}
我只有
d = {
'theList': [1,2,3].remove(2)
}
有这样的功能吗?
请注意,我只想删除有问题的值的第一个实例,而不是所有实例,所以[x for x in [1,2,3] if x != 2]
不会做我想做的事。虽然我不确定是否有一种列表理解方式来做到这一点。
解决方案
该类型不存在这种方法list
。
虽然,您可以自己编写它,首先复制列表,删除元素并返回新列表。
代码
def remove(lst, el):
new_lst = lst.copy()
new_lst.remove(el)
return new_lst
例子
>>> l=[1,2,3]
>>> remove(l, 2)
[1, 3]
>>> l
[1, 2, 3]
推荐阅读
- http - 下载文件以响应 POST 请求?
- javascript - 有没有办法在 ajax 调用(vanillaJS)中的参数中发送参数
- bash - 从 VIM 中的别名调用函数会导致 ' 意外标记 '(' 附近的语法错误?
- android - CoroutineWorker 中多次获取网络请求
- asp.net - Dotnet core 3.1 不绑定查询参数
- python - 警告:张量流:AutoGraph 无法转换
并将按原样运行 - sql - VPD 问题:ORA-28113:策略谓词有错误
- python - 如何使用 jinja 显示带有数千个分隔符的大数字?
- groovy - 在 groovy case 语句中使用范围
- php - SameSite=Lax 阻止来自同一域的 cookie,说它是不同的域