Python基础-使用list和tuple

一.使用list

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

1.创建list并查看list

>>> classmates = ['aaa','bbb','ccc']
>>> classmates
['aaa', 'ccc', 'bbb', 'ccc', 'eee']

2.查看list长度

>>> len(classmates)
3

3.用索引来访问list中每一个位置的元素,记索引是从0开始的:


>>> classmates[0]
'aaa'
>>> classmates[1]
'bbb'

#当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,
>>> classmates[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:
同理,计算倒数第二个,第三个…但记得不要超出范围


>>> classmates[-1]
'ccc'
#超范围验证
>>> classmates[-4]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

4.list是一个可变的有序表,所以,可以往list中追加元素到末尾(这点和c++里面的list类似):


>>> classmates.append('ddd')
>>> classmates
['aaa', 'bbb', 'ccc', 'ddd']


5.可追加就可以删除,默认尾删


>>> classmates.pop()
'ddd'
>>> classmates
['aaa', 'bbb', 'ccc']
>>> classmates.pop(1)
'bbb'
>>> classmates
['aaa', 'ccc']

#有范围限制,超出范围会报错
>>> classmates.pop(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range

6.要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:


>>> classmates
['aaa', 'ccc', 'bbb', 'ccc', 'eee']
>>> classmates[1]='bbb'
>>> classmates
['aaa', 'bbb', 'bbb', 'ccc', 'eee']
>>> classmates[2]='ccc'
>>> classmates[3]='ddd'
>>> classmates
['aaa', 'bbb', 'ccc', 'ddd', 'eee']

7.list元素也可以是另一个list

>>> teacher=['Tom','Jone',['mikko','robot'],'Catte']
>>> teacher
['Tom', 'Jone', ['mikko', 'robot'], 'Catte']

等同于:
>>> p=['mikko','robot']
>>> teacher=['Tom', 'Jone',p, 'Catte']
>>> teacher
['Tom', 'Jone', ['mikko', 'robot'], 'Catte']

8.list元素也可以为空

>>> list=[]
>>> len(list)
0

二:使用touple(又叫元组)

  1. touple也是python里面的一个有序列表,但是与list不同的是,touple的元素不可变,不可变的意思就是touple的元素一旦确定下来,就不可以更改。其他的使用同list
  2. touple是用()括号表示:touple=(元素1,元素2,…)
1.1 创建一个list
>>> classmates=['aaa','bbb','ccc']
>>> classmates
['aaa', 'bbb', 'ccc']

更改list元素,更改成功
>>> classmates[0]='eee'
>>> classmates
['eee', 'bbb', 'ccc']

1.2  创建一个元组
>>> touple=('aaa','bbb','ccc')
>>> touple
('aaa', 'bbb', 'ccc')

修改元素,报错
>>> touple[0]='eee'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> 


不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

2.如果要定义一个空的tuple,可以写成():

>>> t=()
>>> t
()

3.如果要定义一个元素的元组,你如果这样定义的话

>>> aa=(1)
>>> aa
1
这个时候定义的不是只有一个元素的元组,而是数字‘1’,
这是因为()不仅可以表示元组,还可以表示数学里面的小括号,这就会产生歧义,因此python特别规定,这种情况下按小括号计算,所以结果是1,而不是以元组形式表示的1(元组表示是有小括号的 )

所以只有一个元素的touple定义时,必须加上逗号来消除歧义,
Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。


>>> aa=(1,)
>>> aa
(1,)

4.最后来看一下可变的touple

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

之前说的元组的元素不可变,但是为什么我做了修改,竟然成功了尼?
首先,来看元组包含的三个元素

在这里插入图片描述

当我们修改了元素之后:
在这里插入图片描述

有没有发现,其实元组的元素没有变,元组索引对应的元素依然还是原来的元素,'指向的list还是原来的list,只是list里面的元素改变了。所以我们能修改成功。

所以由此可见touple的不可变是指每个元素的索引指向不可变,索引1指向‘a’就不能指向‘b’,但是指向的list本身本身元素是可变的.所以我们可以修改。

小结:

  1. list和touple都是python内置的有序列表,只不过list元素可修改,touple是不可变的。
  2. touple只有一个元素是要加上逗号,避免歧义
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值