初学python列表
首先我定义了一个列表
a = [2,3,3,5,6,7,9]
我想对列表a 的每个值都加一,哈,脑子里顿时闪过一道光
①首先我想到的是用for 循环来进行加一,即以下代码
a = [2,3,3,5,6,7,9]
print(a,type(a))
for i in a:
a[i] = a[i]+1
print(a)
但是运行的时候报错了,错误如下:
a[i] = a[i]+1
IndexError: list index out of range
怎么会出错呢?看了一下错误原来是自己有点**而造成索引越界了;当for第一次循环的时候 i = 2(列表a的第一个值,从第一个值循环输出a各个元素赋给i),a[i] = a[2] = 3 + 1 =4 此时列表a = [2,3,4,5,6,7,9];第二次循环的时候 i = 3,a[i] = a[3] = 5 + 1 =6 此时列表a = [2,3,4,6,6,7,9];第三次 i = 4,a[i] =a[4] = 6 + 1 = 7 此时列表 a = [2,3,4,6,7,7,9];第四次循环的是时候 i = 6,a[i] = a[6] = 9 + 1 = 10 此时列表 a = [2,3,4,6,7,7,10];第五次的时候 i = 7,a[i] = a[7] 可以看到列表a最大为 a[6],所以a[7] 就会造成索引越界。
②第二次则想自己给他加一个索引不就好了,本着**到底的原则,就有了以下错误
a = [2,3,3,5,6,7,9]
print(a,type(a))
for index,i in a:
a[index] = a[index]+1
print(a)
运行以上代码时出现了以下错误;
for index,i in a:
TypeError: 'int' object is not iterable
错误提示说 ‘int’ 对象不可以迭代。此时我 ???
③这还不行,那把列表a变成枚举类型试一下吧:
a = [2,3,3,5,6,7,9]
print(a,type(a))
for index,i in enumerate(a):
a[index] = a[index]+1
print(a)
输出如下:
[2, 3, 3, 5, 6, 7, 9] <class 'list'>
[3, 4, 4, 6, 7, 8, 10]
咦~~~,可以输出了.
唉,心累,学个列表都没学好,赶紧回去看一下知识:
列表可以通过索引下标来取出、修改、删除列表中的值,但是不能通过索引下标来向列表中增加值。
要想增加值,可以调用append()方法来追加,或者调用insert()方法来插入
另外可以调用index()方法来查找元素在列表中的位置
初学python列表的更多相关文章
- 初学Python——列表生成式、生成器和迭代器
一.列表生成式 假如现在有这样一个需求:快速生成一个列表[1,2,3,4,5,6,7,8,9,10],该如何实现? 在不知道列表生成式的情况下,可能会这样写: a=[1,2,3,4,5,6,7,8,9 ...
- 初学Python—列表和元组
一.什么是列表 列表是一系列数据的集合 二.列表的引用 首先定义一个列表 names=["alex","bob","alice"," ...
- 初学Python(十)——列表生成式
初学Python(十)--列表生成式 初学Python,主要整理一些学习到的知识点,这次是列表生成式. # -*- coding:utf-8 -*- ''''' 列表生成式 ''' #一行代码表达所有 ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- 初学python之感悟
python的强大有目共睹,现将初学python,觉得其中比较重要的知识罗列如下: 类似于数组的东西:列表.元组.集合.字符串以及字典,这几个东西充分体现了python的强大和逆天. 列表: x=[1 ...
- Python 列表改为嵌套列表再转为矩阵
最终目的--------->[下面的形式我就可以直接转为矩阵,用mat即可] 下午为了实现list的这个功能,查找了好多库,但是都没有找到怎么做,索性就自己封装了一个函数实现了其功能: def ...
- 初学Python常见异常错误,总有一处你会遇到!
初学Python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了pytho ...
- 初学Python
初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔&quo ...
- python 列表排序
转自http://www.iplaypython.com/jinjie/jj114.html reverse()方法 将列表中元素反转排序,比如下面这样>>> x = [1,5,2, ...
随机推荐
- 8分钟学会使用AutoMapper
一.什么是AutoMapper与为什么用它. 它是一种对象与对象之间的映射器,让AutoMapper有意思的就是在于它提供了一些将类型A映射到类型B这种无聊的实例,只要B遵循AutoMapper已经建 ...
- 『扩展欧几里得算法 Extended Euclid』
Euclid算法(gcd) 在学习扩展欧几里得算法之前,当然要复习一下欧几里得算法啦. 众所周知,欧几里得算法又称gcd算法,辗转相除法,可以在\(O(log_2b)\)时间内求解\((a,b)\)( ...
- JDK1.8源码(二)——java.util.LinkedList
LinkedList定义 LinkedList 是链表实现的线性表(双链表),元素有序且可以重复. public class LinkedList<E> extends Abstrac ...
- redis 系列11 列表对象
一. 列表对象概述 Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边).一个列表最多可以包含 232 - 1 个元素 (4294967295, ...
- source map 的原理探究
线上产品代码一般是编译过的,前端的编译处理过程包括不限于 转译器/Transpilers (Babel, Traceur) 编译器/Compilers (Closure Compiler, TypeS ...
- 在C#中使用忽略大小写的string.Contains方法
在C#中比较源字符串是否包含目标字符串,我们可以使用以下方法: source.Contains(target) source.IndexOf(target) >= 0; 相对而言 Contain ...
- Java开发知识之JavaIO操作缓存操作
目录 带缓存的输入/输出流 一丶简介 二丶BufferedInputStream 与 BufferedOutputString类. 2.BufferOutputStream类. 三丶BufferedR ...
- 第一个Mybatis程序示例 Mybatis简介(一)
在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...
- React事件杂记及源码分析
前提 最近通过阅读React官方文档的事件模块,发现了其主要提到了以下三个点 调用方法时需要手动绑定this React事件是一种合成事件SyntheticEvent,什么是合成事件? 事件属性 ...
- VisualStudio,用C#写的一个开源移动APP,资产管理类项目SmoSec
继SmoOne之后,Smobiler团队又推出一款用C#开发的APP开源项目. 这款开源项目名为SmoSec,目前包含资产管理.耗材管理两大类. 并且,未来会不断迭代,持续增加盘点.标签打印和仓库管理 ...