成功解决.append方法出现错误IndexError: list index out of range

简介: 成功解决.append方法出现错误IndexError: list index out of range

目录

解决问题

解决方法


 

 

解决问题

.append方法出现错误IndexError: list index out of range

 

 

解决方法

X.append(fr.face_encodings(image,known_face_locations=boxes)[0])

print(fr.face_encodings(image,known_face_locations=boxes)),

发现有张图片输出的fr.face_encodings(image,known_face_locations=boxes)的列表为  [ ]  即是空的,所以出现了list index out of range,

T1、只需要删除那张图片即可!

T2、改写函数,增加判断,如果当前数值列表为空,则跳出循环执行下一次循环

1.         for img_path in image_files_in_folder(os.path.join(train_dir, class_dir)):
2.             image = fr.load_image_file(img_path)
3.             boxes = fr.face_locations(image)
4.             print(img_path)
5. #             print(fr.face_encodings(image,known_face_locations=boxes))
6. 
7.             if len(fr.face_encodings(image,known_face_locations=boxes))==0:   #判断空列表
8.                 print("这张图片不合法,请删除!即将退出程序",img_path)
9.                 continue
10. #                 sys.exit()
11.             # 对于当前图片,增加编码到训练集,返回128个值放到X集合里(X.append)
12.             X.append(fr.face_encodings(image,known_face_locations=boxes)[0])

 


相关文章
|
5天前
|
索引
List集合(方法简介,集合遍历)
List集合(方法简介,集合遍历)
|
11天前
|
Java
JavaSE——集合框架一(4/7)-List系列集合:LinkedList集合的底层原理、特有方法、队列、栈
JavaSE——集合框架一(4/7)-List系列集合:LinkedList集合的底层原理、特有方法、队列、栈
7 0
|
11天前
|
Java 索引
JavaSE——集合框架一(3/7)-List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
JavaSE——集合框架一(3/7)-List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理
8 2
|
26天前
|
Java 索引
【JAVA学习之路 | 进阶篇】List接口常用方法
【JAVA学习之路 | 进阶篇】List接口常用方法
|
1月前
|
开发者 Python
【亮剑】Python中`List.append()`方法不起作用的原因及解决方案
【4月更文挑战第30天】本文探讨了Python中`List.append()`方法不起作用的原因及解决方案。问题可能源于变量作用域、可变类型与不可变类型混淆、函数内的局部变量、错误的赋值操作或并发修改。解决方法包括检查变量、确保正确操作列表、使用`global`关键字、避免错误赋值和采用同步机制处理并发问题。理解这些问题对于编写健壮的Python代码至关重要。
|
1月前
|
Java API
【亮剑】三种有效的方法来删除List中的重复元素Java的List
【4月更文挑战第30天】本文介绍了三种Java中删除List重复元素的方法:1) 使用HashSet,借助其不允许重复值的特性;2) 利用Java 8 Stream API的distinct()方法;3) 对自定义对象重写equals()和hashCode()。每种方法都附带了代码示例,帮助理解和应用。
|
1月前
|
索引 Python
row[i] = col[j] = TrueIndexError: list assignment index out of range
row[i] = col[j] = TrueIndexError: list assignment index out of range
|
1月前
List中的remove方法遇到报错不能删除以及四种解决办法点赞收藏
List中的remove方法遇到报错不能删除以及四种解决办法点赞收藏
73 0
|
23小时前
|
存储 Java
深入Java List:探寻有序集合背后的故事
【6月更文挑战第17天】Java List接口,作为有序集合,用于数据存储与处理。ArrayList和LinkedList是常见实现类:ArrayList基于数组,适合随机访问但插入删除慢;LinkedList基于链表,插入删除快但随机访问效率低。在需要频繁在开头插入元素并高效访问时,应选用LinkedList。了解这些原理能帮助优化代码性能。
|
23小时前
|
存储 算法 Java
List的魔法:如何在Java中实现高效有序存储
【6月更文挑战第17天】在Java中,List接口(如ArrayList和LinkedList)实现有序存储,便于高效检索和排序。ArrayList适合索引访问,而LinkedList擅长插入删除。Collections.sort()和Java 8的Stream API能进一步优化排序和操作。优先队列或平衡二叉搜索树等数据结构在特定场景下也能提升有序存储效率。