本文最后更新于:2025年3月18日 晚上
快读
1 2 3 4
| import sys
input = lambda:sys.stdin.readline().strip()
|
lambda
1 2 3 4 5 6 7
| lambda x, target: f(x) > target
def check(x, target): return f(x) > target
|
输入
例1
1 2 3 4
| n = int(input()) a = [int(x) for x in input().split()]
print(*a)
|
1 2 3 4
| n = int(input()) nums = list(map(int, input().split()))
print(*nums)
|
例2
1
| n, m = map(int, input().split())
|
1 2
| print(1204) 输出的是整数,int类型 print('1204') 和 print("1204")输出的是字符串,str类型
|
例三
1 2 3
| n = int(input()) a, b = zip(*[map(int, input().split()) for _ in range(n)])
|
二分-bisect
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
i = bisect(arr, x)
i = bisect(arr, x - 1)
i = bisect(arr, x) - 1
bisect(a, x, lo=0, hi=len(a))
greater = n - bisect(arr, x) lesser = bisect(arr, x - 1)
|
enumerate
enumerate
函数基本用法:
enumerate
函数的基本语法是
enumerate(iterable, start=0)
,其中:
iterable
:是一个必需的参数,表示要进行枚举的可迭代对象,例如列表、元组、字符串等。
start
:是一个可选参数,用于指定索引的起始值,默认值为
0。
1 2 3 4 5
| people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]] for i, p in enumerate(people): h, k = p[0], p[1] ……
|
res.append,res.insert
1 2 3 4 5 6
| res.append()
res.insert(3, 99)
|
两个长度相同列表对应元素相减
1
| result = [a - b for a, b in zip(list1, list2)]
|
列表的排序
1 2 3 4 5 6 7
| nums = [1, 5, 9, 6] try: nums.sort(key = lambda x : x[1]) except TypeError as e: print(f"出现错误: {e}")
|
1 2 3 4
| nums.sort() nums.sort(reverse = True)
|
如果 nums
是一个嵌套列表,key
参数就可以发挥作用。例如:
1 2 3 4 5
| nums = [[1, 2], [5, 3], [9, 1], [6, 4]]
nums.sort(key = lambda x : x[1]) print(nums)
|
all()、any()
all()
函数
all()
函数用于判断可迭代对象中的所有元素是否都为真值。在
Python 中,像 0
、None
、空列表
[]
、空元组 ()
、空字典 {}
、空集合
set()
等会被视为假值,其余大部分值都被当作真值。
iterable
:是一个可迭代对象,例如列表、元组、集合等。
若可迭代对象中的所有元素都为真值,或者可迭代对象为空,all()
函数返回 True
。
若可迭代对象中存在一个假值,all()
函数返回
False
。
1 2 3 4 5 6 7 8 9 10 11
| list1 = [1, 2, 3, 4] print(all(list1))
list2 = [1, 0, 3, 4] print(all(list2))
empty_list = [] print(all(empty_list))
|
any()
函数
any()
函数用于判断可迭代对象中是否存在至少一个真值。
1 2 3 4 5 6 7 8 9 10 11
| list3 = [0, 0, 3, 0] print(any(list3))
list4 = [0, 0, 0, 0] print(any(list4))
empty_list = [] print(any(empty_list))
|
钻牛角尖了
P8218
【深进1.例1】求区间和 - 洛谷
看一下下面两段代码,在刚开始我的理解中,一直觉得要写成第二个的类型,因为对于第一个,你输入一个,它就立马输出了呀,可是我们这里的m大于1,它不符合,就是下面这样:
image-20250313164125423
但实际情况是,如果你直接复制粘贴过来,它也是对的
image-20250313164232188
我认为是要把它存入一个列表里面,最后一起输出,但是也不尽相同,豆包如是说:
当你按下回车键确认输入后,程序会将输入的内容按照换行符或空格进行分割,然后依次读取每个查询的左右边界值,并根据前缀和数组计算并输出相应的区间和。
例如,你一次性输入1 4
和2 3
,中间以换行符分隔,程序会先读取1 4
,计算并输出对应的区间和10
,然后再读取2 3
,计算并输出对应的区间和5
。
所以总结来说就是——都行!别钻牛角尖了
1 2 3 4 5 6 7 8 9 10 11 12
| n = int(input()) a = list(map(int, input().split())) m = int(input())
p = [0] * (n + 1) for i in range(n): p[i + 1] = p[i] + a[i]
for i in range(m): l, r = map(int, input().split()) print(p[r] - p[l - 1])
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| n = int(input()) a = list(map(int, input().split())) m = int(input())
p = [0] * (n + 1) for i in range(n): p[i + 1] = p[i] + a[i]
res = [0] * m for i in range(m): l, r = map(int, input().split()) res[i] = p[r] - p[l - 1]
print(*res, sep = '\n')
|
K
蓝桥杯攻略!省一经验+考试全流程+技巧分享-CSDN博客、
总结:
平时不要太在意在群里看见别人刷了几百道题了,那个数字并不是很重要。如果把一道题真的弄懂了,那么相应的那个知识点相应的一系列题目你自然就会了。
再说了,难道因为自己刷的题没别人多就不学啦?
所以保持好心态,你就会发现又AC一道题的时候有多快乐啦~
希望可以帮到你们~加油加油!
k02