目录
一维列表的定义
直接赋值生成
用户输入生成
元素类型是字符型
元素类型是整形
二维列表的定义
直接赋值生成
用户输入生成
元素类型是字符型
元素类型是整型
编程题常用的列表输入格式
如定义一个长度为5的一维列表
L=['h','e','l','l','o']
print(L)
结果为
如果列表中每个元素相同则可以用for循环生成,如生成长度为10且每个元素都为0的列表
L=[0 for i in range(10)]
print(L)
结果为
需要用户在终端输入数组的元素
直接使用input函数和spilt函数
L=input().split()
print(L)
在终端输入abcd jkjk jnjn,结果如下
以上表示每个元素用空格分隔,如果需要使用别的分隔符如逗号,代码如下
L=input().split(",")
print(L)
这个时候如果还是使用空格分开,会把这整个当成列表的一个元素
因为input接收的默认是字符型,所以需要先使用map函数把每个元素转换成整型,然后还需要使用list函数将整个转换成列表
L=list(map(int,input().split())
print(L)
终端输入12 15 59 75 55,结果为
首先要把上面的一维列表定义搞清楚,二维列表的定义是建立在一维列表上的
L=[
[1,2,3],
[4,5,6],
[7,8,9]
]
print(L)
print(L[0])
print(L[0][2])
结果
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个这样的列表,结果为
需要使用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
结果为
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
结果为
由于编程题一般都是用户输入生成列表,而且有固定的输入格式要求,例如题目规定输入第一行输入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
结果为