零基础学python-12.5 修改列表的误区以及使用for和range修改列表
来源:互联网 发布:什么是sql数据库系统 编辑:程序博客网 时间:2024/05/16 04:11
这一章节聊聊使用for和range修改列表,大部分的人在遇到这个场景的时候都会想到以下代码:
>>> a=[1,2,3]>>> for x in a:x+=1>>> a[1, 2, 3]>>>
但是为什么结果不对呢?
我们来看看它的运行步骤:
1.在列表a里面取出一个对象
2.把刚刚的对象赋值给x
3.x自加1
大家这里会想到,x引用的对象1,跟列表第一个对象引用的对象1是同一个对象,理应换掉的,问题就出现在这里,其实,x所指向的对象已经变了,只不过你不知道而已
我们再看看下面一组代码:
>>> a=[1,2,3]>>> for x in a:x+=1>>> a[1, 2, 3]>>> for x in a:print(id(x))x+=1print(id(x))154172257615417225921541722592154172260815417226081541722624>>>
上面的代码我们在x+=1前后都增加了一条打印x的对象id的语句,打印了一大堆id出来,我们从id的变化可以看见,x一直在变化,这是由于整数在python里面的不可改变性
若我们想改变上面的列表,就需要按照下面的方法:
>>> a=[1,2,3]>>> for x in range(len(a)):a[x]+=1>>> a[2, 3, 4]>>>
通过遍历列表,使用索引执行列表里面的对象,改变它的值
这一章节主要说了改变列表的误区,以及使用for和range来改变列表
这一章节就说到这里,谢谢大家
------------------------------------------------------------------
点击跳转零基础学python-目录
0 0
- 零基础学python-12.5 修改列表的误区以及使用for和range修改列表
- 零基础学python-2.15 回到我们的游戏 加入for以及列表
- 零基础学python-8.4 在原处修改列表方法汇总
- 零基础学python-2.16 列表解析
- 零基础学python-8.1 列表
- 零基础学python-16.5 模块间全局变量的修改以及其他访问全局变量的方法
- 零基础学python-8.2 列表的基本操作、迭代和解析
- 零基础学python-8.3 列表的索引、分片和矩阵
- 零基础学python-13.4 文件上使用列表解析与列表解析扩展
- 零基础学python-12.4 while、for与range联合使用
- leetcode-1:python基础,循环、条件、列表、字典的应用,enumerate、range函数以及2.0和3.0print的区别
- 零基础学python-2.7 列表与元组
- 零基础学python-19.3 列表解析与矩阵
- range()函数。 笨方法学python. 循环和列表。
- Python零基础入门之三---(for循环+列表)
- python 序列类型以及list(列表) 和 tuple(元组)详解 以及range的用法
- 零基础学python-7.4 修改字符串实例总结
- 零基础学python-8.6 字典的基本操作与原处修改
- [leetcode]Power of Two C语言
- 酷划邀请码,酷划官方邀请码
- Java开发中的23种设计模式详解(转)
- 字符数组与字符指针
- The Triangle--nyoj 18
- 零基础学python-12.5 修改列表的误区以及使用for和range修改列表
- Linux NTP配置详解 (Network Time Protocol)
- 11gR2 Agent 简介
- javascript Object Pool 对象池
- Static 关键字在 C 语言中的作用
- Android App 性能优化实践
- 更改UIImage颜色
- rejected execution (queue capacity 50)
- CSS属性书写规范