Python 函数切片操作返回空列表,问题出在哪?
自写 python 函数出现奇异错误?
一名开发者编写了如下 python 函数:
def test(): n_0 = 10 n_1 = 11 n_2 = 12 del_1 = n_0 - 1 return n_2[del_1: n_1]
然而,奇怪的是,调用此函数后却输出空列表[]。
问题根源分析
立即学习“Python免费学习笔记(深入)”;
问题在于del_1的计算。由于n_0被初始化为10,del_1的值变为9(10 - 1 = 9)。导致切片操作n_2[del_1: n_1]等价于n_2[9: 11]。
由于n_2仅包含两个元素,因此切片后自然得到空列表。
解决方法
要解决此问题,只需要确保del_1的值始终有效。一种简单的方法是在减法运算之前将n_0设置为有效的值。
def test(): n_0 = 1 # 将 n_0 设置为有效值 n_1 = 11 n_2 = 12 del_1 = n_0 - 1 return n_2[del_1: n_1]
这样,del_1现在等于0,切片操作n_2[del_1: n_1]正确地返回n_2的第一个元素。
文章推荐
-
2020年适用于Linux程序员的10个最佳Python集成开发环境
Python 是世界上最流行的编程语言之一,Linux 是程序员中使用最广泛的操作系统之一。因此,有很多适用于 Linu...
Python
38秒前 0 -
获取字典中的第一个和最后一个元素的Python程序
Python是一种解释型的、面向对象的、高级的编程语言,具有动态语义。由Gudio Van Rossum于1991年开发...
Python
1分钟前 0 -
在Python中漂亮地打印XML
在Python中处理XML数据时,确保其可读性和结构可以极大地增强代码的理解和可维护性。对XML进行漂亮打印,即使用适当...
Python
2分钟前 0 -
Python日志基础 - 简易指南
日志记录用于跟踪软件运行时发生的事件。使用日志记录,您可以在代码中添加日志调用来指示某些事件已发生。通过这种方式,您可以...
Python
2分钟前 0 -
如何在Python中创建静态类数据和静态类方法?
Python 包含静态类数据和静态类方法的概念。静态类数据在这里,为静态类数据定义一个类属性。如果您想为属性分配新值,请...
Python
3分钟前 0
最新文章
- 2020年适用于Linux程序员的10个最佳Python集成开发环境 38秒前
- 获取字典中的第一个和最后一个元素的Python程序 1分钟前
- 在Python中漂亮地打印XML 2分钟前
- Python日志基础 - 简易指南 2分钟前
- 如何在Python中创建静态类数据和静态类方法? 3分钟前
- 使用Python获取字符串列表中数字的总和 4分钟前
- 如何使用TensorFlow Serving在Python中部署模型? 5分钟前
- Python程序:删除数组/列表中的所有元素的出现次数 6分钟前
- 探秘Python在机器学习中的杰出应用案例 7分钟前
- Python在智能交通系统中的应用案例分析 8分钟前