Python 列表索引超出范围(拆分和联接)

Python 列表索引超出范围(拆分和联接),python,python-3.x,Python,Python 3.x,对于上面的代码,我得到一个索引错误。我以前也发过类似的帖子。在每一步我都会得到这个索引错误。有人能帮我纠正这一点,告诉我为什么到处都是索引错误吗 我得到的错误是: train_person_to_images_map = defaultdict(list) for x in train_images: train_person_to_images_map([str(x).split("\\")[-3] + "\\" + str(x).split("\\")[-2]]).append(x

对于上面的代码,我得到一个索引错误。我以前也发过类似的帖子。在每一步我都会得到这个索引错误。有人能帮我纠正这一点,告诉我为什么到处都是索引错误吗

我得到的错误是:

train_person_to_images_map = defaultdict(list)

for x in train_images:
    train_person_to_images_map([str(x).split("\\")[-3] + "\\" + str(x).split("\\")[-2]]).append(x)

    val_person_to_images_map = defaultdict(list)

    for x in val_images:
    val_person_to_images_map([ppl]).append(x)
索引器错误回溯(最近一次调用)
在里面
2.
3对于列车图像中的x:
---->4列车人到图像地图([str(x).split(\\”[-3]+“\\”+str(x).split(\\”)
[-2]])。追加(x)
5.
6 val\u person\u to\u images\u map=defaultdict(列表)
索引器:列表索引超出范围

我会研究
[-3]
[-2]
。如果
str(x).split(\\”
生成的列表长度小于3项,
str(x).split(\\”[-3]
将抛出索引超出范围错误。

它正在抱怨您的数据,我们对此一无所知。str(x)看起来像什么?顺便说一句,要使用
defaultdict
,您必须像[this]那样使用
,而不是像([this])
那样使用
。使用括号可以调用函数,但
defaultdict
显然不可调用。
IndexError                                Traceback (most recent call last)
<ipython-input-10-00482029bfdd> in <module>
  2 
  3 for x in train_images:
----> 4     train_person_to_images_map([str(x).split("\\")[-3] + "\\" + str(x).split("\\") 
  [-2]]).append(x)
      5 
      6     val_person_to_images_map = defaultdict(list)

IndexError: list index out of range