走进Python世界(5)----list和tuple
来源:互联网 发布:js new一个函数的过程 编辑:程序博客网 时间:2024/06/05 08:20
list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。类似Java里面的集合,数组。
初始化:
>>> list = ['Walee01', 'Walee02', 'Walee03']>>>list>>>['Walee01', 'Walee02', 'Walee03']
用len()函数可以获得list元素的个数
>>> len(list)3>>>
用索引来访问list中每一个位置的元素,索引是从0开始的
>>> list[0]'Walee01'>>> list[1]'Walee02'>>> list[2]'Walee03'>>> list[3]Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> list[3]IndexError: list index out of range>>>
当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界
如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素
>>> list[-1]'Walee03'>>> list[-2]'Walee02'>>> list[-3]'Walee01'
list是一个可变的有序表,所以,可以往list中追加元素到末尾,append是list的追加元素的方法
>>> list.append('Walee04')>>> list['Walee01', 'Walee02', 'Walee03', 'Walee04']
要删除list末尾的元素,用pop()方法,用pop(i)方法,其中i是索引位置
>>> list.pop()'Walee04'>>> list.pop(-2)'Walee02'
list里面的元素的数据类型也可以不同
>>> list.append(['a',1,False])>>> list['Walee01', 'Walee02', 'Walee03', ['a', 1, False]]>>> list[-1][-1]False
tuple
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改
>>> tuple('Walee01', 'Walee02', 'Walee03')>>> tuple[0]'Walee01'>>> tuple[-1]'Walee03'
tuple定义了以后,就不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用tuple[0],tuple[-1],但不能赋值成另外的元素。
>>> tuple[0]='Walee04'Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> tuple[0]='Walee04'TypeError: 'tuple' object does not support item assignment
不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
>>> myTuple=(1,2,3)>>> myTuple(1, 2, 3)>>> len(myTuple)3>>> kong=()>>> kong()
看下面的代码
>>> some=(4)>>> some4
这个时候出现了一个问题:小括号是数学上的小括号呢?还是定义Tuple的小括号呢?
这个时候产生量歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是4。所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义。
>>> some=(4,)>>> some[0]4
“可变的”tuple
>>> t = ('a', 'b', ['A', 'B'])>>> t('a', 'b', ['A', 'B'])>>> t[-1][0]='W'>>> t('a', 'b', ['W', 'B'])>>>
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素,我们可以看出来t[-1]=[‘A’, ‘B’]这是个list。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
- 走进Python世界(5)----list和tuple
- Python list和tuple
- Python list和tuple
- 开始Python -- List和Tuple(1)
- 开始Python -- List和Tuple(2)
- 开始Python -- List和Tuple(3)
- python:(3)使用list和tuple
- Python(三)List 和 Tuple
- python的list和tuple
- python的list 和 tuple
- python中的list和tuple
- python 使用list和tuple
- Python List 、 tuple和dict
- Python(3)--list和tuple
- python的list和tuple
- Python(List和Tuple类型)
- python list和tuple区别
- Python中的List和tuple
- maven下载jar包速度慢(解决办法)
- servlet和web容器之间的关系
- JavaScript数组中的冒泡排序
- Android studio中使用Live Templates提高工作效率
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方案
- 走进Python世界(5)----list和tuple
- 关于STM32 CAN回环可用,正常不可用情况分析
- WebRtc最新编译,最新版本2017
- 367. Valid Perfect Square
- 多核处理器&类UNIX系统 -> 之多进程和多线程性能比较
- Kinect2+Matlab2015b (win10-64)安装配置
- Chinese Chess recognition
- 轻量级分布式 RPC 框架
- 统计学