У меня есть вложенный список, и я хотел бы удалить пустой список []
и любой вложенный список со значением -1
. Вот то, что я имею до сих пор, это работало раньше, но я думаю, что jupyter глючил.
regions = [[], [2, -1, 1], [4, -1, 1, 3], [5, 0, -1, 4], [9, 10, 7, 8],
[7, 6, 10], [8, 0, 5, 6, 7], [9, 2, 1, 3, 10],
[9, 2, -1, 0, 8], [10, 3, 4, 5, 6]]
counter = range(len(regions))
for region in counter:
print(region)
for i in range(len(regions[region])): # IndexError: list index out of range
#print(regions[region])
if regions[region][i] == -1:
regions.remove(regions[region])
break
print(regions)
Думаю, проблема в том, что когда я удаляю регион из списка регионов, счетчик для вложенного списка регионов изменяется, и это заставляет меня исчерпать значения индекса, прежде чем я завершу sh итерацию через каждый вложенный список.
Также имеет ли смысл мой подход или есть более нативное решение, которое я пропускаю (например, какое-то понимание списка, лямбда, фильтр и т. д. c)?