Python之初识二维列表

2022-11-11 19:48:11 浏览数 (1)

二维列表是将其他列表当做列表的元素放在一个列表当中,也就是列表的嵌套。在Python中数组存在于第三方库中,因此在不安装第三方插件的前提下想要在Python中使用数组方法,就要采用二维列表这个方法。

extend()命令

extend()命令可以把一个列表中的所有元素拼接在另一 个列表的后面。

格式

列表1.extend(列表2)

将列表2中的元素 拼接在列表1后面。

py

代码语言:javascript复制
name1 = ['xiaowangzi', 'is']
name2 = ['kevin']
name2.extend(name2)
for i in name1:
    print(i)

运行结果:

xiaowangzi is kevin

向有序列表插入数字

输入一个数字(10-90之间),把这个数字插入到num列表中, 并保持num中元素从小到大的排列顺序。

num = [19, 26, 91]

解题思路

可以把插入数字和列表中的元素,从左到右进行比较,来确定插入的位置。如果插入数字大于前一个元素并且小于后一个元素,就把数字插入到两个元素中间。

py

代码语言:javascript复制
num = [19, 26, 91]
a = int(input())
if num[0] < a and a < num[1]:
    num.insert(1, a)
elif num[1] < a and a < num[2]:
    num.insrt(2,a)
print(num)

两个判断语句只有数字不一样,并且数字的变化是有规律的:下面的判断语句总比上面的判断语句对应位置的数字大1。

可以使用for循环简化代码:

py

代码语言:javascript复制
num = [19, 26, 91]
a = int(input())
for i in range(2):
    if num[i] < a and a < num[i   1]:
        num.insert(i 1, a)
        break
print(num)

二维列表

列表元素可以是任何数据类型,除了字符串、数字,列表的元素也可以是一个列表。

data = [‘xiaowangzi’, ‘is’, [‘kevin’, ‘wang’], ‘yeah’]

data[2] --> ['kevin', 'wang'] data[2][0] --> ['kevin']

如果一个列表的所有元素都是列表,它就是二维列表。

对于一个二维列表,使用一个索引可以得到子列表,再使用一个索引,可以得到子列表中的元素。

py

代码语言:javascript复制
列表名[i] ------------> 子列表
列表名[i][j] ---------> 子列表中的元素
      |  |
      |  |-----------> 子列表的索引
      |--------------> 列表索引

二维列表的插入

向二维列表插入子列表: append()命令

列表.append(子列表)

py

代码语言:javascript复制
info =[['a', 'b'], ['c', 'd']]

py

代码语言:javascript复制
r = ['e', 'f']

将列表r插入到列表info中 info.append(r)info.insert(2,r) insert()命令可以向列表中插入元素。 其中,第1个参数表示要插入的索引位置,第2个参数表示插入的元素。

py

代码语言:javascript复制
info =[['a', 'b'], ['c', 'd'],['e', 'f']]

二维列表的修改

如果是对二维列表的某一个子列表整体进行修改,可以 使用列表名[索引]的方式,获得需要修改的子列表。

py

代码语言:javascript复制
info = [['锄','禾', '日', '当', '午'], ['汗','滴','禾','下','土'], ['米','饭','真','好','吃'],['粒','粒','皆','辛','苦']]

py

代码语言:javascript复制
c = [['谁','知','盘','中','餐'],['汉','堡','真','好','吃'],['可','乐','没','营','养']]

代码实现: info[2] = c[0] info中索引为2的子列表修改为c中索引为0的子列表

如果是对子列表中的某一个元素进行修改,在使用列表名[索引]得到子列表以后,还需要找到要修改的元素在子列表中的索引,也就是列表名[索引][索引]的方式,获得需要修改的元素。

将列表info的第2个子列表中的第4个元素’凉’, 修改为列表c的第3个元素’来’

py

代码语言:javascript复制
info = [['空','山','新','雨','后'],['天','气','晚','凉','秋'],['明','月','松','间','照'],['清','泉','石','上','流']]

py

代码语言:javascript复制
c = ['走','回','来']

代码实现:info[1][3] = c[2]

py

代码语言:javascript复制
info = [['空','山','新','雨','后'],['天','气','晚','来','秋'],['明','月','松','间','照'],['清','泉','石','上','流']]

二维列表的遍历

使用for循环遍历二维列表,循环变量依次为列表中的 每一个元素,即每一个子列表。

py

代码语言:javascript复制
info = [['异','口','同','声'],['五','光','十','色'],['一','帆','风','顺'],['笑','口','常','开']]

for i in info:
print(i)

运行结果

[‘异’,’口’,’同’,’声’] [‘五’,’光’,’十’,’色’] [‘一’,’帆’,’风’,’顺’] [‘笑’,’口’,’常’,’开’]

遍历子列表

对于一个二维列表,使用一个索引可以得到子列表。先利用索引得到一个子列表,再遍历这个子列表,就能得到这个子列表中的每个元素。

py

代码语言:javascript复制
for i in 二维列表[索引]
    |         |----- 一个子列表
    |------------- 子列表中的元素

py

代码语言:javascript复制
poetry = [
['空','山','新','雨','后'],
['天','气','晚','来','秋'],
['明','月','松','间','照'],
['清','泉','石','上','流']]
for x in poetry[0]:
print(x)

for语句遍历poetry的第一个子列表,每次循环,循环变量x依次是子列表的一个元素。 输出结果:

空 山 新 雨 后

遍历二维列表

使用for循环嵌套可以遍历二维列表。用外循环遍历列表,可以得到每一个子列表,再用内循环遍历子列表,可以得到每一个数据。

适用情况:仅使用列表元素

py

代码语言:javascript复制
    | ---------|----- 子列表
for i in 列表: |
      for j in i:
          | ....
          | --------- 子列表的元素

py

代码语言:javascript复制
a = [[1,2,3],[4,5,6]]
for i in a: //遍历列表,得到子列表
for j in i: //遍历子列表,得到子列表元素
print(j)

第一次循环: i = [1, 2, 3], 内循环遍历i,j依次是1、2、3 第二次循环: i = [4, 5, 6], 内循环遍历i,j依次是4、5、6 运行结果:

1 2 3 4 5 6

遍历方式

直接遍历列表,循环变量就是列表元素

py

代码语言:javascript复制
for x in 列表:
    ...

适用情况: 仅使用列表元素

把循环变量作为索引,得到列表元素

py

代码语言:javascript复制
for i in range(len(列表)):
    ...
列表名[i] ----> 列表元素

适用情况: 使用列表索引 / 有规律的数字

两种遍历二维列表的方式,都使用了for循环嵌套的结构: 外循环遍历二维列表,得到子列表;内循环遍历子列表,得到 每个具体元素。

0 人点赞