Я новичок ie в python, и я пытаюсь вычислить вхождение элемента в двумерном списке, используя for-l oop. Если вхождение> 3, то:
- Вставить элемент в список_2
- Удалить элемент из списка_1.
К сожалению, Я получаю ошибку индекса вне допустимого диапазона.
Переменные, которые я использую:
data # numpy array for a series of value
list_1 # a 2-dimensional list for data
list_2 # a list for data after some modification
создать массив
import numpy as np
data=np.array([1,2,3,1,2,3,1,1,3])
Я надеюсь, что позже я вернусь к списку по индексу поэтому я создаю 2 списка с заданной длиной = 9
list_1=[0 for i in range(0,9)]
list_2=[0 for i in range(0,9)]
Затем назначьте каждому элементу в list_1 новый список с именем node.
node будет похож на подмножество list_1.
for k in range(0,9):
node=[data[k],k]
list1[k]=node
В узле 2 значения. Первое значение - для данных [i], а второе значение - для индекса i.
Например:
node[i][0]=the value in data[i]
node[i][1]=the index of data[i], which is i
Вот мой код. Ошибка происходит в строка:
sum_count = sum (sublist.count (list1 [i] [0]) для подсписка в list1)
# if list_1 is not empty
while list_1:
for i in range(0,9):
# sum the occurrence of current element
sum_count=sum(sublist.count(list_1[i][0]) for sublist in list_1)
if sum_count>=3:
index=list_1[i][1]
list_2[index]=list_1[i][0]
list_1.remove(list_1[i])
else:
break
Я проверил значение по индексу = 0,1,2 ... 8 соответственно. Понятия не имею, что не так с index. Буду очень признателен, если кто-нибудь даст мне совет!