python-3.x - 从 DEEP 嵌套列表中删除子列表
问题描述
我正在为一些嵌套列表而苦苦挣扎。简而言之,在列表列表中,我有一些包含多个值的列表
biglist = [[['strings', '632'], ['otherstrings', 'hey']],[['blabla', '924'], ['histring', 'hello']]]
从这个嵌套列表中,我想删除'hello'
出现字符串的子列表。我试过这个:
for sub_line in big_list:
if 'hello' in sub_line:
big_list.remove(sub_line)
现在,如果我在循环外打印新big_list
列表,我会得到旧列表,因为我没有将更新的列表分配给新列表。但是,如果我分配给一个新列表,例如:
for sub_line in big_list:
if 'hello' in sub_line:
updated_list = big_list.remove(sub_line)
print(updated_list)
我得到一个AttributeError: 'NoneType' object has no attribute 'remove'
.
那么这有什么问题呢?我不能使用列表索引,因为我的真实列表很大,而且目标值并不总是在同一个地方。我已经检查了其他问题,但没有任何效果。谢谢你们!
解决方案
以下对我有用。您需要从列表中删除 sub_line (不是行)。
big_list = [['strings', '632', 'otherstrings', 'hey'],['blabla', '924', 'histring', 'hello']]
print(big_list)
for sub_line in big_list:
if 'hello' in sub_line:
big_list.remove(sub_line)
print(big_list)
推荐阅读
- python - 将音频转换为整数然后再转换为音频
- php - bootgrid使用json数据不加载php mysqli
- json - 如何严格解组一个固定长度的数组?
- vuejs2 - 使用vue js从外部域的json文件中获取选择数据
- c++ - 是否可以使用字符串检查预处理器定义?
- apache-spark - 如何使用 Pycharm 在 pyspark 中传递附加模块
- javascript - 从场景中移除的三个.js 对象仍在显示中
- dart - 如何在所有子组件中手动调用变更检测?
- git - 你可以吗?是否建议为 github 和 gitlab/gitbucket 使用相同的 ssh 密钥
- ruby-on-rails - Rails 应用程序出错:无法统计“/path/to/app/current/passenger_wsgi.py”:权限被拒绝(errno=13)