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 使用小记的更多相关文章

  1. Python之创建tuple和“可变”的tuple

    Python之创建tuple tuple是另一种有序的列表,中文翻译为" 元组 ".tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了. 同样是表示班里 ...

  2. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  3. [转] Python list、tuple、dict区别

    from: http://www.cnblogs.com/Michael-Kong/archive/2012/07/11/2585840.html Dictionary 是 Python 的内置数据类 ...

  4. python基本数据类型——tuple

    一.元组的创建与转换: ages = (11, 22, 33, 44, 55) ages = tuple((11, 22, 33, 44, 55))ages = tuple([]) # 字符串.列表. ...

  5. python list和tuple

    list列表简介:列表是python的基础数据类型之⼀ ,其他编程语⾔也有类似的数据类型. 比如JS中的数组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤' , '隔开⽽且可以存放各种数 ...

  6. Python中list,tuple,dict,set的区别和用法(转)

    原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...

  7. python 数据类型 之 tuple 元组

    python 3.6.5 元组的特性和定义 与列表类型 只不过 [  ] 改成了() 特性: 1.不可变(元组本身不可变,但是可以存可变类型的element){猜测因为可变element的地址不可变而 ...

  8. python list 和 tuple, dict 用于迭代代价

    #!/usr/bin/env python #-*- coding:utf-8 -*- import time start = time.time() for i in range(1000000): ...

  9. python 元组(tuple)

    面试python我想每个人都会被问一个问题,就是python中的list和tuple有什么区别? 一般情况下,我会回答,list元素可变,tuple元素不可变(书上或者其他的博客都是这么写的),一般情 ...

随机推荐

  1. Adobe Photoshop CS6简单的破解

    由于网站的页面布局和素材准备等等需要用到Photoshop,所以下载了个 Photoshop CS6,写这份破解文档的大佬感觉写的很复杂,看了让人头疼,乱搞中突然发现一个方法可以很快的进行破解操作,我 ...

  2. 文件下载报错:引发类型为“System.OutOfMemoryException”的异常-.Net 内存溢出

    CSDN:http://blog.csdn.net/huwei2003/article/details/53559272 设置了也没有用,于是想到手动清理应用程序池,但又迁配置问题于是改成最后的方式! ...

  3. CCPC-Wannafly Winter Camp Day1 Div1 - 夺宝奇兵 - [贪心+线段树]

    题目链接:https://zhixincode.com/contest/3/problem/J?problem_id=43 样例输入 1 4 1110 11 110 21 210 31 315 415 ...

  4. MySQL的一些概念

    数据库与服务器.客户端的层次关系 关于数据库 程序中需要存储数据的方式: 1 变量(列表.元组.集合.字典.嵌套) 2 外存(文件)(*.ini) 3 表格.Excel(*.xls.*.xlsx.*. ...

  5. es6 数组实例的 find() 和 findIndex()

    数组实例的find方法,用于找出第一个符合条件的数组成员.它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员.如果没有符合条件的成员,则返回u ...

  6. MyBatis时间比较

    <if test="submitTime!=null and submitTime!=''"> AND DATE_FORMAT(sc.submit_time, '%Y- ...

  7. [development][libconfig] 配置文件库

    以前,一直用ini的配置文件. 简单清晰但是不灵活. 换一个: 试试libconfig 主页:  http://www.hyperrealm.com/oss_libconfig.shtml githu ...

  8. Apache Kafka - KIP-42: Add Producer and Consumer Interceptors

    kafka 0.10.0.0 released   Interceptors的概念应该来自flume 参考,http://blog.csdn.net/xiao_jun_0820/article/det ...

  9. TMS WEB Core v1.2预览版:新的Electron应用程序支持

    2019年2月20日,星期三 几个月前,我们已经开始与Electron进行实验.在工作概念验证之后,我们的目标是为Delphi开发人员尽可能多地包装Electron API.但当然不仅仅是可以使用的E ...

  10. 【PyQt5-Qt Designer】在GUI中使用pyqtgraph绘图库

    pyqtgraph绘图库 1.1 简介: pyqtgraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于内部实现方式上,使用了高速计算的numpy信号处理库以 ...