Python错误:列表索引必须是整数或片,而不是str

2022-05-21 07:13:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用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)

请帮我解决这个问题。谢谢


Tags: 方法ids列表字典belistclasspersonprintsetmustindicesmydirtypeerrortrackid
3条回答
网友
1楼 ·

你犯了一个小错误,做得很好。您将“mydir”声明为python列表,并将其作为索引“p7”。Python列表不能有字符串索引。您可以将第一行更改为下面的行

mydir = {}
网友
2楼 ·

您正试图在索引'p7'(一个字符串)处的mydir中插入一个项索引是整数而不是字符串。这就是错误的原因

您的问题说您希望插入到dictionary中,并且您的代码使用了list

mydir = {} - This is a dictionary

mydir = [] - This is a list

以下是您需要做的:

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]}
网友
3楼 ·

您正在此处声明一个列表mydir = []

将其更改为dictionarymydir = {}