在python竞赛中,对于数据的存储,数组用的很多。它里面可以存储多种数据类型,同时数组的使用还是十分方便。以下将进行数组的一些简单介绍,适合给备赛的同学进行复习。
1、列表的定义
python中的列表有点像java中的数组等。
# 1、定义
a0 = [] # 定义一个空的列表
a1 = [1,2,3,'a',"hello",[4,5,6]] # 竞赛中一般存储的是一种数据格式
a2 = [i for i in range(1, 10)] # 使用列表生成式相当于[1, 2, 3, 4, 5, 6, 7, 8, 9]
a3 = [i for i in range(1,10) if i % 2 == 0] # 进行条件筛选,相当于[2, 4, 6, 8]
a4 = [0] * 4 # 重复元素
# 补充说明:rang(a,b) 是左闭右开的 相当于数学中的[a,b)
print(a2)
print(a3)
print(a4)
2、列表的遍历
# 2、列表的遍历
b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 进行遍历
for i in b:
print(i, end=" ") # 不进行换行输出
for i in range(len(b)):
print(b[i]) # 根据下标来进行遍历
for i in range(len(b) - 1, -1, -1): # 长度为10,最大下标为9,因此要进行减1,第二个参数是步长,为负的话就是反向,最后一个参数是结束点
print(b[i], end=" ") # 反向遍历
for i in b[::-1]:
print(i, end=" ") # 将列表中的元素进行反向后再输出
3、列表的截取
# 3、截取
c = [1,2,3,4,5,6]
print(c[2]) # 输出下标为2的数
print(c[1:3]) # 输出下标为1,2的数
print(c[::-1]) # 反向输出
print(c[-1:-3:-1]) # 输出下标为-1,-2的数,最后一个是-1为步长
4、常用方法
# 4、常用方法
d = [2,2,23,45,67,43,21]
e = [1,2,3,23]
print(len(d)) # 列表的长度
print(min(d[2:5])) # 区间[2.5)的最小值
print(sum(d)) # 求和
print(max(d)) # d列表中的最大值
d.append(99) # 在列表末尾插入99
print(d)
d.insert(1,98) # 指定下标1进行插入
print(d)
d.pop() # 删除末尾元素
print(d)
d.pop(2) # 删除指定下标元素
print(d)
del d[1] # 删除指定下标元素,与pop(index)相同
print(d)
print(d+e) # 两个列表进行相加,有重复的元素也不会去重
print(d.count(2)) # 统计某个元素的个数,如果元素的字符,例如 'c'
print(d.index(2)) # 找出某个元素第一次出现的下标
d.remove(2) # 删除指定元素
print(d)
d.reverse() # 列表反序
print(d)
d.sort() # 升序改变原来的列表
print(d)
d.sort(reverse=True)
print(d)
5、读取操作
# 5、不读a[0]
e = [0] + list(map(int, input().split())) # 第一行输入n整型个数,用空格隔开
print(e)
# 6、 读取
f = [i for i in input().split()] # 第一行输入n个字符串
print(f)
g = []
n = 2
for j in range(n):
g.append(int(input()))
print(g)
6、二维列表
# 二维列表
h = [[i for i in range(3)] for j in range(2)]
print(h)
l = [[1] * 3 for i in range(2)]
print(l)
s = '''1234556
1234556
1234556
1234556
1234556'''
# 将给定的字符串存在二维列表中
m = [[i for i in j.split() ] for j in s.split("\n")]
print(m)
q = []
n = 2
for i in range(n): # 输出n行,每一行存在一个列表中,构成m × n的二维列表
p = list(map(int,input().split()))
q.append(p)
print(q)