python基础学习笔记——列表(list)和元组(tuple)

一、列表(list)

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

>>> name=['Mike','Lucy','Jane']
>>> name
['Mike', 'Lucy', 'Jane']
>>> type(name)
<class 'list'>

其中name就是一个list,用len函数可以获取列表元素的个数:

>>> len(name)
3

1.索引操作

>>> name[1]#正向索引(左往右索引,从0开始)
'Lucy'
>>> name[-1]#负向索引(右往左索引,从-1开始)
'Jane'
>>> name[3]#正向索引越界
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    name[3]
IndexError: list index out of range
>>> name[-4]#负向索引越界
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    name[-4]
IndexError: list index out of range

2.添加元素

#添加元素到列表末尾
>>> name.append('Bob')
>>> name
['Mike', 'Lucy', 'Jane', 'Bob']
#在列表中指定位置插入新元素
>>> name.insert(1,'Nike')#将新元素插入到列表中索引为1的元素之前
>>> name
['Mike', 'Nike', 'Lucy', 'Jane', 'Bob']

3.删除元素

#删除列表最后一个元素
>>> name.pop()
'Bob'
>>> name
['Mike', 'Nike', 'Lucy', 'Jane']
#删除列表指定位置的元素
>>> name.pop(1)#删除列表中索引为1的元素
'Nike'
>>> name
['Mike', 'Lucy', 'Jane']

4.元素的替换

#直接采用索引赋值的方式即可
>>> name[1]='Peter'
>>> name
['Mike', 'Peter', 'Jane']

5.补充

list的元素类型可以不同,如

>>> L = ['Apple', 123, True]

list的元素也可以是另外一个list,如

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

要拿到'php'可以用s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。
如果一个list中一个元素也没有,就是一个空的list,它的长度为0:

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

二、元组(tuple)

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

现在,classmates这个tuple不能变了,它也没有append()insert()这样的方法。其他获取元素的方法和list是一样的,也可以正常地使用classmates[0]classmates[-1],但不能赋值成另外的元素。
不可变的tuple可以使代码更安全。如果可能,能用tuple代替list就尽量用tuple。
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

>>> t = (1, 2)
>>> t
(1, 2)
#定义空元组
>>> t=()
>>> t
()
#定义只有一个元素的元组(要在元素后面加上逗号)
>>> tuple_1=(1)
>>> type(tuple_1)
<class 'int'>
>>> tuple_2=(1,)
>>> type(tuple_2)
<class 'tuple'>

注意:元组里的元素如果有列表,那么该列表里的元素可以改变,因为此时元组里的元素其实是没有改变的,tuple指向的那个list还是那个list。所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!例子:

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

此时运行不报错,说明该元组是“可变的”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值