所以,这是我的问题。我正在尝试根据条件遍历嵌套列表并删除一些元素。问题是,每当删除一个元素时,这会改变列表的长度,这反过来又会产生错误:
IndexError: list index out of range
这是我的代码:
a = [[[1] * 2 for i in range(n)] for j in range(p)]
for y in range(p):
for x in range(n):
if len(a[y]) > 1:
if a[y][x][1] == 1:
if random.random() < s:
del a[y][x]
s 只是一个介于 0 和 1 之间的数字。因为我想确保每个列表至少有 1 个值,所以我将 if len(a[y]) > 1 部分放入。我想我可以理解这个问题,问题是列表的长度在变化,因此位置也在变化。有谁知道克服这个问题的简单方法?