python - 无法从列表中永久删除项目
问题描述
作为更广泛课程的一部分,我试图在调用时根据它们的名称删除列表中的项目。
目前我有一个如下代码:
users = [["Engineer", "Joe Blogs"], ["Scientist", "John Doe"]]
# many line of code later
def deleteName(name):
for items in users:
for values in items:
if name in items:
job = items[0]
firstLastName = items[1]
items.remove(job)
items.remove(firstLastName)
print(users)
此时print(users)
,一切都按预期工作。但是,一旦我尝试归还已更改的列表,我就会再次获得未更改的列表。我知道这是关于范围的,但我不知道如何解决它。
users
正在被其他代码使用。
解决方案
这行得通。作为注释,我建议您不要在函数中使用全局变量(用户),如果需要,只需将它们作为参数传递。
users = [["Engineer", "Joe Blogs"], ["Scientist", "John Doe"]]
# many line of code later
def deleteName(name, users):
for items in users:
_, firstLastName = items
if firstLastName == name:
users.remove(items)
deleteName("Joe Blogs", users)
print(users)
推荐阅读
- excel - 匹配数据子集
- .net - 在 spark 中解析不同的时间戳格式
- grpc - 为什么我在启动模拟器时会收到此 GRPC 错误“WARNING: EmulatorService.cpp:448: Cannot find certfile”?
- javascript - 谷歌地图标记删除功能未在 ReactJS 中调用
- python - OpenCV连接ps3眼摄像头(python)
- android - 使用相同的代码将 Apk 转换为 ios 或两者(跨平台)
- typescript - 构建打字稿时如何将非ts文件复制到dist?
- api - 如何在 Magento 1.9 Rest api 中使用 paypal express checkout 下订单
- playframework - 播放路线:将不同文件夹中的资产路由到单独的路径中
- ruby-on-rails - Rails 没有方法错误未定义方法'day'