python中一维列表和二维列表的超详细定义方法

目录

一维列表的定义

直接赋值生成

用户输入生成

元素类型是字符型

元素类型是整形

二维列表的定义

直接赋值生成

用户输入生成

元素类型是字符型

元素类型是整型

编程题常用的列表输入格式


一维列表的定义

直接赋值生成

如定义一个长度为5的一维列表

L=['h','e','l','l','o']
print(L)

结果为

8ab47b5d25654466a2b6832e3febd5c8.png

如果列表中每个元素相同则可以用for循环生成,如生成长度为10且每个元素都为0的列表

L=[0 for i in range(10)]
print(L)

结果为

819266f9545c4dd58031ef95dde94f0a.png

用户输入生成

需要用户在终端输入数组的元素

元素类型是字符型

直接使用input函数和spilt函数

L=input().split()
print(L)

在终端输入abcd jkjk jnjn,结果如下

2913b35476cc4f62a3a929c319e64608.png

以上表示每个元素用空格分隔,如果需要使用别的分隔符如逗号,代码如下

L=input().split(",")
print(L)

在终端输入abcd,jkjk,jnjn 结果如下b5de96b4fa904fb19b62ac65759b780f.png

这个时候如果还是使用空格分开,会把这整个当成列表的一个元素

290b12a745ae4bc3ad2f46f1e0cc42c6.png

元素类型是整形

因为input接收的默认是字符型,所以需要先使用map函数把每个元素转换成整型,然后还需要使用list函数将整个转换成列表

L=list(map(int,input().split())
print(L)

终端输入12 15 59 75 55,结果为

bc03f067a3c7427f8b301313dab8f896.png

二维列表的定义

首先要把上面的一维列表定义搞清楚,二维列表的定义是建立在一维列表上的

直接赋值生成

L=[
[1,2,3],
[4,5,6],
[7,8,9]
]
print(L)
print(L[0])
print(L[0][2])

结果

e06161aaf16944cfa687c50087b861f9.png

python的二维列表不像c语言的二维数组一样会二维的显示出来,而是通过列表中含有列表的方式,L[0]表示L中的第一个元素即为[1,2,3],L[0][2]表示[1,2,3]中的第三个元素,所以L[0][2]为3

也可以写成如下形式,python的二维列表可以看成元素为列表类型的一维列表

L=[[1,2,3],[4,5,6],[7,8,9]]

使用for循环定义相同元素的二维数组,如定义三行四列的二维列表,每个元素都为0

L=[[0 for j in range(4)] for i in range(3)]
print(L)

先建立4个元素为0的一维列表,然后建立3个这样的列表,结果为

bbc96b4a6d6d4fb7a617136a8221ee72.png

用户输入生成

需要使用for循环和append函数,每行元素个数可以不同

元素类型是字符型

例如创建三行的二维列表

L=[]
for i in range(3):
    L.append(input().split())
print(L)
print(L[1][1])

终端输入

aa bb cc
dd ee 
ff gg hh ii

结果为

5ae34042d742491cac9341bed5e7d870.png

元素类型是整型

L=[]
for i in range(3):
    L.append(list(map(int,input().split())))
print(L)
print(L[1][1])

终端输入

1 2 3
4 5
6 7 8 9

结果为

0dcce22b5a1a4c36af94e428f2c442b2.png

编程题常用的列表输入格式

由于编程题一般都是用户输入生成列表,而且有固定的输入格式要求,例如题目规定输入第一行输入n和m,n表示行数,m表示列数,接下来输入n行,每行有m个整数,即以下格式

3 4
11 22 33 44
55 66 77 88
99 11 22 33

根据要求代码可以写成如下

n,m=int(input().split())
L=[]
for i in range(n):
    L.append(list(map(int,input().split())))

如果格式要求为用逗号分割,如

3,4
11,22,33,44
55,66,77,88
99,11,22,33

只需要在split函数里加逗号,如

n,m=int(input().split(","))
L=[]
for i in range(n):
    L.append(list(map(int,input().split(","))))

还有一种就是会规定用户输入一次输入生成两个列表,例如输入格式为四行,每行有两个元素,分别是两个列表的元素,其中元素类型为整型

L=[]
K=[]
for i in range(4):
    a,b=map(int,input().split())
    L.append(a)
    K.append(b)
print(L)
print(K)

终端输入

12 23
42 21 
11 22
31 42

结果为

1c7f698b1bde47eaa55511fb3274fbb2.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Genius256

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值