Python list 和 tuple 使用小记
list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
1.内置数据类型,列表List
>>> appleVersion = ['apple1','apple2','apple3']
>>> appleVersion
['apple1', 'apple2', 'apple3'] >>> len(appleVersion)
3 >>> appleVersion[0]
'apple1' >>> appleVersion[1]
'apple2' >>> appleVersion[2]
'apple3' >>> appleVersion[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of rang
倒序打印
>>> appleVersion[-1]
'apple3' >>> appleVersion[-2]
'apple2' >>> appleVersion[-3]
'apple1' >>> appleVersion[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
新增
>>> appleVersion.append('orange')
>>> appleVersion
['apple1', 'apple2', 'apple3', 'orange']
插入
>>> appleVersion.insert(1,'banana')
>>> appleVersion
['apple1', 'banana', 'apple2', 'apple3', 'orange']
删除末尾/删除索引i
>>> appleVersion.pop()
'orange'
>>> appleVersion
['apple1', 'banana', 'apple2', 'apple3']
>>> appleVersion.pop(1)
'banana'
>>> appleVersion
['apple1', 'apple2', 'apple3']
赋值替换
>>> appleVersion[1]='orange'
>>> appleVersion
['apple1', 'orange', 'apple3']
List嵌套
>>> orange=['orange1','orange2']
>>> apple=['apple1',123,orange,True]
>>> apple
['apple1', 123, ['orange1', 'orange2'], True]
>>> len(apple)
4
2. tuple和list非常类似,但是tuple一旦初始化就不能修改,不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
tuple的陷阱:
当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
>>> lemon=('lemon1','lemon2','lemon3')
>>> lemon
('lemon1', 'lemon2', 'lemon3')
>>> lemon1=()
>>> lemon1
()
数字1
>>> lemon2=(1)
>>> lemon2
1
一个原素
>>> lemon3=(1,)
>>> lemon3
(1,)
>>> lemon4=('a','b',['A','B'])
>>> lemon4[2][0]='X'
>>> lemon4[2][1]='Y'
>>> lemon4
('a', 'b', ['X', 'Y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
理解了“指向不变”后,要创建一个内容也不变的tuple,那就必须保证tuple的每一个元素本身也不能变
Python list 和 tuple 使用小记的更多相关文章
- Python之创建tuple和“可变”的tuple
Python之创建tuple tuple是另一种有序的列表,中文翻译为" 元组 ".tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了. 同样是表示班里 ...
- Python中list,tuple,dict,set的区别和用法
Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...
- [转] Python list、tuple、dict区别
from: http://www.cnblogs.com/Michael-Kong/archive/2012/07/11/2585840.html Dictionary 是 Python 的内置数据类 ...
- python基本数据类型——tuple
一.元组的创建与转换: ages = (11, 22, 33, 44, 55) ages = tuple((11, 22, 33, 44, 55))ages = tuple([]) # 字符串.列表. ...
- python list和tuple
list列表简介:列表是python的基础数据类型之⼀ ,其他编程语⾔也有类似的数据类型. 比如JS中的数组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤' , '隔开⽽且可以存放各种数 ...
- Python中list,tuple,dict,set的区别和用法(转)
原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...
- python 数据类型 之 tuple 元组
python 3.6.5 元组的特性和定义 与列表类型 只不过 [ ] 改成了() 特性: 1.不可变(元组本身不可变,但是可以存可变类型的element){猜测因为可变element的地址不可变而 ...
- python list 和 tuple, dict 用于迭代代价
#!/usr/bin/env python #-*- coding:utf-8 -*- import time start = time.time() for i in range(1000000): ...
- python 元组(tuple)
面试python我想每个人都会被问一个问题,就是python中的list和tuple有什么区别? 一般情况下,我会回答,list元素可变,tuple元素不可变(书上或者其他的博客都是这么写的),一般情 ...
随机推荐
- [Android实例] Android Studio插件-自动根据布局生成Activity等代码1.4 (开源)(申明:来源于网络)
[Android实例] Android Studio插件-自动根据布局生成Activity等代码1.4 (开源)(申明:来源于网络) 地址:http://www.eoeandroid.com/thre ...
- Tif文件合并类
using System; using System.Collections; using System.Collections.Generic; using System.Drawing; usin ...
- vins-mono调试教程
https://www.cnblogs.com/Jessica-jie/p/6950604.html
- [No0000102]JavaScript-基础课程2
var bob = new Object(); bob.age = ; // 这一次我们已经添加了一个方法,setAge bob.setAge = function (newAge){ bob.age ...
- CMSampleBufferRef转换
参考链接:https://blog.csdn.net/shenyi0106/article/details/47004039 https://blog.csdn.net/jeffasd/article ...
- PHP之PSR
PHP的PSR (PSR 称为PHP Standard Recommendations) PSR参考网址:http://www.php-fig.org/psr 在PHP中,有5个编码标准分类: ①.P ...
- iOS-方法之+ initialize 与 +load
Objective-C 有两个神奇的方法:+load 和 +initialize,这两个方法在类被使用时会自动调用.但是两个方法的不同点会导致应用层面上性能的显著差异. 一.+ initialize ...
- 使用Git,如何忽略不需要上传的文件(配置文件)
步骤1:在目录下,选择GIt Bash Here 2.输入命令 : git update-index --assume-unchanged 文件名 3.再输入指令 git status 查看修改文件 ...
- NOIP2009靶形数独
题目描述: 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“ ...
- vue.cli项目中src目录每个文件夹和文件的用法
assets文件夹是放静态资源:components是放组件:router是定义路由相关的配置:view视图:app.vue是一个应用主组件:main.js是入口文件: