第十四届蓝桥杯备赛基础数据结构1.1——列表的应用

本文介绍了Python中列表的定义、遍历、截取、常用方法,包括列表生成式、条件筛选、元素的增删改以及排序。此外,还涉及了读取输入、二维列表的创建和字符串到列表的转换,适合Python初学者和竞赛备赛者复习。
摘要由CSDN通过智能技术生成

在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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

南巷旧人173

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

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

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

打赏作者

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

抵扣说明:

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

余额充值