Ошибка Python : индексы списка должны быть целыми числами или срезами, а не str

#python #dictionary

Вопрос:

Я попытался удалить дубликаты списка с помощью set метода и добавить это значение с помощью ключа в пустой словарь python.

Но это дает мне это сообщение об ошибке

 TypeError: list indices must be integers or slices, not str

 

Я пробовал этот способ:

 mydir =[]
person_trackID = "p7"
class_ids = [3 ,3 ,3 ]
print(mydir,person_trackID,set(class_ids))
mydir[person_trackID] = list(set(class_ids))
print(mydir)
 

пожалуйста, помогите мне решить эту проблему.Спасибо

Ответ №1:

Вы объявляете список здесь mydir = []

Измените его на словарь mydir = {}

Ответ №2:

вы отлично справляетесь с одной маленькой ошибкой. вы объявляете «mydir» как список python и даете ему » p7 » в качестве индекса. В списке Python не может быть строковых индексов. вы можете изменить первую строку на следующую.

 mydir = {}
 

Ответ №3:

Вы пытаетесь вставить элемент в mydir индекс at 'p7' (который представляет собой строку). Индексы являются целыми числами, а не строками. Вот почему произошла ошибка.

В вашем вопросе говорится, что вы хотите вставить в a dictionary , и ваш код использует a list .

mydir = {} — Это словарь

mydir = [] — Это список

Вот что вам нужно сделать:

 mydir = {}
person_trackID = "p7"
class_ids = [3 ,3 ,3 ]
print(mydir,person_trackID,set(class_ids))

mydir[person_trackID] = list(set(class_ids))
print(mydir)
 
 {} p7 {3}
{'p7': [3]}