分析Python list操作为什么会错误
目录
- 1、前言
- 2、解决方案
- 3、总结

1、前言
这几天都是在用python搞数据分析,在很多方面python有着比Matlab更大的优势。
正是因为python是一个免费、开源的平台,在整个python社区圈子中活跃的人数也远远比Matlab圈子更多,在数学建模上我个人也开始尝试使用python。
今天在一个小练习中遇到了这样一个错误:

IndexError: list assignment index out of range
抱着过去的编程习惯自然而然就觉得下面这个代码挺对的。
l = []
for i in range(10):
l[i] = i
print(l[i])
接着我们就来看看他的解决方法。
2、解决方案
我们要知道:空数组不能直接指定位置!
但是我们可以通过向列表中添加元素的函数——append()来实现。更多列表操作请看:Python 列表的基本操作介绍
这一段代码就能够被编译。
当然我们还有更多解决方案,如:
l = [0]*10
for i in range(10):
l[i] = i
print(l[i])
3、总结
不要向python中的空列表中的元素均为空值(并非为0),我们无法对空列表进行操作。
到此这篇关于分析Python list操作为什么会错误的文章就介绍到这了,更多相关Python list操作错误分析内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python中的内存管理之python list内存使用详解
前言 使用 Python 的时候,我们知道 list 是一个长度可变对的数组, 可以通过 insert,append 和 extend 轻易的拓展其中的元素个数. 也可以使用运算符 如: [1] + [2] 生成新的数组[1, 2] extend(). "+"."+=" 的区别 "+"将两个 list 相加,会返回到一个新的 list 对象 append 在原 list 上进行修改,没有返回值 从以下代码可以看到, 调用 b = b + [3,
-
关于python类SortedList详解
目录 SortedList 有序序列 方法 1.添加值 2.移除值 3.查找 4.迭代值 5. 其他 SortedList 有序序列 class sortedcontainers.SortedList(iterable=None, key=None) 方法 1.添加值 SortedList.add(value) 添加新元素,并排序.时间复杂度O(log(n)). SortedList.update(iterable) 对添加的可迭代的所有元素排序.时间复杂度O(k*log(n)). 2.移除值
-
python3操作redis实现List列表实例
目录 下面是具体例子详解和代码: ①lrange(key , start , stop) ②lpush(key , value) ③rpush(key , value) ④lpop(key) ⑤rpop(key) ⑥blpop(key) ⑦brpop(key) ⑧brpoplpush(source,destination,timeout) ⑨lindex(key,index) ⑩linsert(key,before|after,privot,value) ①①llen(key) ①②lpushx
-
python实现跳表SkipList的示例代码
跳表 跳表,又叫做跳跃表.跳跃列表,在有序链表的基础上增加了"跳跃"的功能,由William Pugh于1990年发布,设计的初衷是为了取代平衡树(比如红黑树). Redis.LevelDB 都是著名的 Key-Value 数据库,而Redis中 的 SortedSet.LevelDB 中的 MemTable 都用到了跳表. 对比平衡树,跳表的实现和维护会更加简单,跳表的搜索.删除.添加的平均时间复杂度是 O(logn). 跳表的结构如图所示: 可以发现,对于一个节点Node,其含有多
-
Python List remove()实例用法详解
描述 remove() 函数用于移除列表中某个值的第一个匹配项. 语法 remove()方法语法: list.remove(obj) 参数 obj -- 列表中要移除的对象. 返回值 该方法没有返回值但是会移除列表中的某个值的第一个匹配项. 实例 以下实例展示了 remove()函数的使用方法: #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.remove('xyz'); print "List : &quo
-
Python源码解析之List
一.列表结构体 创建列表C语言底层的结构体 lists = [] list.append('name') list.append('age') list.append('grade') typedef struct{ struct _object *_ob_next; struct _object *_ob_prev; // python内部将对象放在链表进行内存管理 Py_ssize_t ob_refcnt; // 引用计数器,就是多少变量用了它 PyObject **ob_item; //
-
python开发中两个list之间传值示例
由于改代码因为这个问题卡了半个小时特此记录 首先对于一个单层的列表 赋值如下,可以看见,如果直接使用 = 的话.其中一个变换便会引起另外一个变换,这时因为这两个list被python解释的时候使用的相同的地址,如下面输出的 id()中的内容,所以此时如果想让一个列表接收到另外一个列表的值,并且在接收到值后不会因为其中任意一个值的改变而改变,这时候就需要使用copy方法,这里可以解释成,当使用了copy方法后,python单独创建了找个一个内存区的地址放了新的那个值. a = [ 1,2,3] b
-
Python list列表删除元素的4种方法
目录 del:根据索引值删除元素 pop():根据索引值删除元素 remove():根据元素值进行删除 clear():删除列表所有元素 在 Python 列表中删除元素主要分为以下 3 种场景: 根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法: 根据元素本身的值进行删除,可使用列表(list类型)提供的 remove() 方法: 将列表中所有元素全部删除,可使用列表(list类型)提供的 clear() 方法. del:根据索引值删除元素 del 是 Pyt
-
python 如何在list中找Topk的数值和索引
需求: 对于一个python list 或者numpy数组,我需要找到这个list中最大的K个数及其对应的下标. 解决方式: 1. 可以构造字典通过排序解决,不过代码量较多. 2. 使用heapq库,可以直接获取最大值的下标和数值. import heapq a = [4,2,6,1,9,9] # 获取下标, 输出为[4, 5, 2] heapq.nlargest(3, range(len(a)), a.__getitem__) # 获取数值, 输出为[9, 9, 6] heapq.nlarge
-
分析Python list操作为什么会错误
目录 1.前言 2.解决方案 3.总结 1.前言 这几天都是在用python搞数据分析,在很多方面python有着比Matlab更大的优势. 正是因为python是一个免费.开源的平台,在整个python社区圈子中活跃的人数也远远比Matlab圈子更多,在数学建模上我个人也开始尝试使用python. 今天在一个小练习中遇到了这样一个错误: IndexError: list assignment index out of range 抱着过去的编程习惯自然而然就觉得下面这个代码挺对的. l = [
-
分析Python list操作为什么会错误
目录 1.前言 2.解决方案 3.总结 1.前言 这几天都是在用python搞数据分析,在很多方面python有着比Matlab更大的优势. 正是因为python是一个免费.开源的平台,在整个python社区圈子中活跃的人数也远远比Matlab圈子更多,在数学建模上我个人也开始尝试使用python. 今天在一个小练习中遇到了这样一个错误: IndexError: list assignment index out of range 抱着过去的编程习惯自然而然就觉得下面这个代码挺对的. l = [
-
python文件操作之目录遍历实例分析
本文实例讲述了python文件操作之目录遍历的方法.分享给大家供大家参考.具体分析如下: Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数: os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
-
Python元组操作实例分析【创建、赋值、更新、删除等】
本文实例讲述了Python元组操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 元组是跟列表非常相近的另一种容器类型. 元组是一种不可变类型,一旦创建不可以修改其中元素. 由于这种特性,元组能做一个字典的key. 当处理一组对象时,这个组默认是元组类型. ''' '''''创建元组并赋值''' #创建并对一个元组赋值 tuple_1=(1,2,3,"ewang","demo") #创建一个空的元组 tuple_2=() #使用tuple创
-
python列表操作之extend和append的区别实例分析
本文实例讲述了python列表操作之extend和append的区别.分享给大家供大家参考.具体如下: li = ['a', 'b', 'c'] li.extend(['d', 'e', 'f']) print li print len(li) print li[-1] li = ['a', 'b', 'c'] li.append(['d', 'e', 'f']) print li print len(li) print li[-1] 运行结果如下: ['a', 'b', 'c', 'd', '
-
Python redis操作实例分析【连接、管道、发布和订阅等】
本文实例讲述了Python redis操作.分享给大家供大家参考,具体如下: 一.redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与me
-
Python 私有化操作实例分析
本文实例讲述了Python 私有化操作.分享给大家供大家参考,具体如下: 私有化 xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 _xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户名字空间的魔法对象或属性.例如:init , __ 不要自己发明这样的名字 xx:单后置下划线,用于避免与Python关键词的冲突 通过name mangling
-
Python切片操作实例分析
本文实例讲述了Python切片操作.分享给大家供大家参考,具体如下: 在很多编程语言中,针对字符串提供了截取函数,其实目的就是对字符串切片.Python没有针对字符串的截取函数,只需要切片操作就可以完成. 切片操作符是序列名后跟一个方括号,方括号中有3个可选的数字,并用冒号分割,数是可选的,而冒号是必须的. 切片操作符中的第一个数表示切片开始的位置,第二个数表示切片到哪里结束,第三个数表示切片步长. 如果不指定第一个数,Python就从序列首开始.如果没有指定第二个数,则Python会停止在序列
-
Python全排列操作实例分析
本文实例讲述了Python全排列操作.分享给大家供大家参考,具体如下: step 1: 列表的全排列: 这个版本比较low # -*-coding:utf-8 -*- #!python3 def permutation(li,index): for i in range(index,len(li)): if index == len(li)-1: print(li) return tmp = li[index] li[index] = li[i] li[i] = tmp permutation(
-
总结分析Python的5个硬核函数
对于想深入理解 Python 的朋友,很有必要认真看看.喜欢本文点赞支持,欢迎收藏学习. 1. eval函数 函数的作用: 计算指定表达式的值.也就是说它要执行的Python代码只能是单个运算表达式(注意eval不支持任意形式的赋值操作),而不能是复杂的代码逻辑,这一点和lambda表达式比较相似. 函数定义: eval(expression, globals=None, locals=None) 参数说明: expression:必选参数,可以是字符串,也可以是一个任意的code对象实例(可以
随机推荐
- perl 基本语法介绍
- Spring装配Bean之用Java代码安装配置bean详解
- JavaScript截取字符串的2个函数介绍
- 完美实现js选项卡切换效果(二)
- phpmyadmin 访问被拒绝的真实原因
- Python函数式编程指南(四):生成器详解
- Android 动画(View动画,帧动画,属性动画)详细介绍
- 详解Node.js串行化流程控制
- JavaScript blog式日历控件新算法
- firefox插件Firebug的使用教程
- 用js模拟struts2的多action调用示例
- ThinkPHP标签制作教程
- apache访问根目录 配置作用域的相关资料
- Java基础将Bean属性值放入Map中的实例
- 与数据库连接
- Laravel框架实现model层的增删改查(CURD)操作示例
- vuedraggable+element ui实现页面控件拖拽排序效果
- vue项目开发中setTimeout等定时器的管理问题
- 详解C# WebApi 接口测试工具:WebApiTestClient
- iOS基于 UILabel实现文字添加描边功能
