我正在使用 Python,第一个我有两个嵌套列表
segments_list = [[[0, 1, 2, 3, 4, 5], ['small', 'modest', 'little'], 16.218604324326577]]
第二个
clusters_appearance_list = [[[0, 0], ['jack']], [[0, 4], ['study']], [[0, 4], ['small', 'modest', 'little']], [[0, 5], ['big', 'large']]]
我想从有 cluster_appearance_list
的 ['small', 'modest', 'little']
中删除列表
这是我的代码
for segment in segments_list:
for cluster in clusters_appearance_list:
if segment[1] == cluster[1]:
cluster.remove(cluster)
print(clusters_appearance_list)
我遇到了这个错误
ValueError: list.remove(x): x not in list
答案 0 :(得分:0)
而不是从 cluster_appearance_list
中删除项目,而是尝试从 cluster
中删除项目
即 cluster.remove(cluster)
应改为 clusters_appearance_list.remove(cluster)
您的最终代码应如下所示:
segments_list = [[[0, 1, 2, 3, 4, 5], ['small', 'modest', 'little'], 16.218604324326577]]
clusters_appearance_list = [[[0, 0], ['jack']], [[0, 4], ['study']], [[0, 4], ['small', 'modest', 'little']],
[[0, 5], ['big', 'large']]]
for segment in segments_list:
for cluster in clusters_appearance_list:
if segment[1] == cluster[1]:
clusters_appearance_list.remove(cluster)
print(clusters_appearance_list)
答案 1 :(得分:0)
您不应该在遍历列表时尝试修改它。做到这一点的一种很好的方法是使用列表推导式:
segments_list = [[[0, 1, 2, 3, 4, 5], ['small', 'modest', 'little'], 16.218604324326577]]
clusters_appearance_list = [[[0, 0], ['jack']], [[0, 4], ['study']], [[0, 4], ['small', 'modest', 'little']], [[0, 5], ['big', 'large']]]
clusters_appearance_list = [cluster for cluster in clusters_appearance_list for segment in segments_list if cluster[1] != segment[1]]
print(clusters_appearance_list)
输出:
[[[0, 0], ['jack']], [[0, 4], ['study']], [[0, 5], ['big', 'large']]]