Python列表(list)和元组(tuple)

本文转自 「好专栏」《Python列表(list)和元组(tuple)》

咱们上节课讲了Python赋值和变量,而变量在赋值语句中是一种体现,对变量有了一个感性的认识(变量就是一个贴了标签的盒子。),这节课我们讲解下python的列表(list)和元组(tuple)这2个“基础数据类型”,所谓数据类型:用来存放数据的结构。

上一小节咱们讲解了变量就是一个贴了标签的盒子,盒子里面存放的是值,而这今天讲解的2个新的基本类型可以存放多个值。

有人说我也可以用多个变量存放多个值嘛?的确是可以的,但是这样效率太低,所以python给我们提供了list和tuple。

 一、python 列表(list)

1、列表格式:

[值,值,…,值]   

 比如:

[1,2,3,4,5]
['苹果','栗子','樱桃','葡萄']

定义方式:

使用中括号[]和使用list()这个函数来定义:

>>> name_list = ['小明','小强']
>>> name_list
['小明', '小强']
>>> 
>>> fruit = list()
>>> fruit.append('苹果')
>>> fruit
['苹果']

list的构成:在中括号之间,填写列表元素,列表元素之间用逗号分隔,列表上有序的,序号从0开始,要访问某个元素使用:

变量名[元素序号]

 

大家可以把列表想象成一个桌子,桌子有很多抽屉,这些抽屉是有顺序的,编号从0开始。

那么我们像上一节课Python赋值语句和变量一样,定义一个变量,然后它的值是列表,咱们打开python交互模式输入(不懂的同学可以看《第一个python程序》):

>>> fruit=['苹果','栗子','香蕉','猕猴桃']
>>> fruit
['苹果', '栗子', '香蕉', '猕猴桃']

 

咱们前面说了,列表是有顺序的,并且从0开始,咱们目前需要访问第一个和第三个元素:

>>> fruit=['苹果','栗子','香蕉','猕猴桃']
>>> fruit
['苹果', '栗子', '香蕉', '猕猴桃']
>>> fruit[0]
'苹果'
>>>
>>> fruit[2]
'香蕉'

 

2、列表是可变的,里面的元素是可变的

这点非常重要,大家要记清楚,例如:

>>> fruit[0] = '西瓜'
>>> fruit
['西瓜', '栗子', '香蕉', '猕猴桃']
>>> fruit[0]
'西瓜'
>>> fruit[2]='火龙果'
>>> fruit
['西瓜', '栗子', '火龙果', '猕猴桃']
>>>

最开始咱们定义的列表的值:

['苹果','栗子','香蕉','猕猴桃']

 

 然后咱们通过重新“赋值”(赋值,就是把值放到盒子里面,贴上名称) 把第一个元素改成了'西瓜',把第三个元素改成了'火龙果'。

tip:咱们有时候经常会定义一个空的list,然后在后续代码中往里面添加数据 ,定义方式:

>>> name_list = []
>>> name_list
[]
>>> name_list.append('ff')
>>> name_list
['ff']
>>>
>>> fruit = list()
>>> fruit.append('苹果')
>>> fruit
['苹果']

 

3、列表反向访问

咱们已经知道,我们需要访问列表的第一个元素很简单,我们访问最后一个元素,倒数第二个元素也能办到,这里我们给大家介绍一种方式,可以从后面往前面访问列表的元素:

变量名[负数]

 

 在中括号里面填上负数即可,-1代表倒数第一个元素,-2代表倒数第二个元素,以此类推。例子如下:

>>> num = [11,22,45,32]
>>> num
[11, 22, 45, 32]
>>> num[3]
32
>>> num[-1]
32
>>> num[-2]
45

 

4、列表元素的添加、删除和列表的长度

1)、向列表添加元素使用: 

变量名.append(元素值)

 

大家需要记住的是通过变量名后面加点就能访问这个变量的函数(或者称成员方法、方法、function),函数相关问题咱们后续课程会讲到,咱们今天就大概知道下,变量名后面加点然后跟函数名称代表想要对变量执行一些操作。

这里执行的操作是对列表添加一个元素,咱在括号里面填入需要添加的元素即可,例子如下:

>>> name_list = ['小明','小东']
>>> name_list
['小明', '小东']
>>> name_list.
name_list.append(  name_list.copy(    name_list.extend(  name_list.insert(  name_list.remove(  name_list.sort(  
name_list.clear(   name_list.count(   name_list.index(   name_list.pop(     name_list.reverse(
>>> name_list.append('小芳')
>>> name_list
['小明', '小东', '小芳']

如果你需要访问变量的函数,你在变量名后面加点,然后按下Tab键,即可列举这个变量拥有的函数,咱们上面的操作就显示了一些。

2)、删除列表元素使用:

del 变量名[元素索引]

 

>>> name_list
['小明', '小东', '小芳']
>>> del name_list[1]
>>> name_list
['小明', '小芳']

 

3)、获得列表的长度

这里说的列表的长度其实说的是列表元素的长度,通过len()函数即可访问:

len(列表变量名)

 

>>> name_list = ['小明','小东']
>>> name_list
['小明', '小东']
>>> len(name_list)
2
>>> name_list.append('小芳')
>>> len(name_list)
3
>>> name_list
['小明', '小东', '小芳']

 

二、python元组(tuple)

1、元组格式

元组和列表一样都是按顺序存放多个数据,格式如下:

(元素,元素,…,元素) 

 

和列表一样,也是有序的,序号从0开始:

变量名[元素序号]

 

例子:

>>> num=(11,21,33)
>>> num[0]
11
>>> num[2]
33

 

2、元组元素不可变,一旦定义就不能改变元组,包括添加和删除,需要注意的是变量是可以变的,这里说的不能变的是元组。如果不懂变量可以参考《Python赋值语句和变量》中的Python变量小节。

 >>> name_list = ('小明','小东')
>>> name_list[0]='大胖'
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'tuple' object does not support item assignment
>>>
>>> del name_list[0]
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'tuple' object doesn't support item deletion
>>> name_list.append('ff')
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'tuple' object has no attribute 'append'

tip:因为元组不可变,所以定义空的元组没有任何意义

 

3、元组的反向访问。

和列表一样,都是通过负数来访问

变量名[负数]

 在中括号里面填上负数即可,-1代表倒数第一个元素,-2代表倒数第二个元素,以此类推。例子如下:

>>> name_list = ('小明','小东')
>>>
>>>
>>> name_list[0]
'小明'
>>> name_list[-1]
'小东'
>>> name_list[-2]
'小明'

 

三、   到底什么时候用list什么时候用tuple

如果你认为你定义的多个数据不用改变,那么你就定义成元组,如果可能会添加、删除你就用列表

 

四、list和tuple相互转换

需要说明的是:变量可以随意定义,前面定义了变量,如果不懂的同学可以查看 《python赋值语句和变量》,后面可以再给赋值变成一个新的变量比如下面例子中的 name_list , 可以直接把列表传给tuple()转换成tuple;也可以把tuple传给list()转换成列表。

tip:转换后新的变量存放转换后的结果;而以前的变量是不变的。

例子:

>>> name_list = ['精神小伙','小美']
>>> names = tuple(name_list)
>>> names
('精神小伙', '小美')
>>> 
>>> name_list = tuple(['老王','村花'])
>>> name_list
('老王', '村花')
>>> 
>>> cats = ('小橘','狸花猫')
>>> cats
('小橘', '狸花猫')
>>> cat_list = list(cats)
>>> cat_list
['小橘', '狸花猫']
>>> cats
('小橘', '狸花猫')

 

五、   课后题:

1、  编写代码实现一个列表,元素有 苹果、栗子、香蕉。向列表里面添加葡萄这种水果,然后删除栗子这种水果,然后写出2中访问方式访问倒数第二个元素?此时倒数第二个元素是什么?

2、  元组的元素可以删除吗?请编写代码尝试删除元素

3、  定义一个元组,元组元素为:男、女,访问倒数第一个元素本节课,内容有点多,大家细细理解和练习即可,请认真完成课后题,如果有不懂的在评论区留言。

 

系列目录如下:

Python语言介绍

Python3编程环境搭建

第一个python程序

python中注释和字符串

python中的数字

python赋值语句和变量

Python列表(list)和元组(tuple)

Python字典(dict)和集合(set)

Python布尔运算

Python条件判断(if语句)

Python循环语句

Python切片(slicing)

你可能感兴趣的:(python)