ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

py知识点

py知识点 1.replace函数str.replace(oldvalue, newvalue[, count])oldvalue将被替换的子字符串(必需)newvalue用于替换oldvalue的子字符串(必需)count数值次数指定要替换多少个oldvalue(可选)例.replace(\n, )去掉所有换行符确保数据是连续的data sys.stdin.read().replace(\n, )2.append()函数例向列表末尾添加元素results []results.append(f{A}:{B})f{A}:{B}格式化为A:B形式比如11:8然后存入results列表。3.for _ in range(N):循环执行N次。range(N)生成一个从0到N-1的序列。_表示我们不关心循环变量的值,即不需要使用循环变量for _ in range(N):m, v map(int, input().split())coins.append((m, v))循环N次每次读取一行输入将其解析为两个整数m和v然后将(m, v)添加到列表coins中。4.sys.stdin.readdata sys.stdin.read().split()sys.stdin.read读取所有输入数据返回一个字符串。输入数据可能包含多行使用sys.stdin.read可以一次性读取所有输入。split()将字符串按空格分割成列表。5.列表推导式和enumerate链接洛谷 排队接水1223times list(map(int, data[1:n1])) indexed_times [(time, i 1) for i, time in enumerate(times)]列表切片data[1:n1]获取从第 2 个元素到第n1个元素。将接水时间和原始编号绑定生成一个元组列表indexed_times。enumerate(times)遍历times列表返回索引和值。最终生成一个列表如[(56, 1), (12, 2), (1, 3), ...]列表推导式List Comprehension是 Python 中一种简洁的创建列表的方式。它可以用一行代码生成一个新的列表通常比传统的for循环更简洁和高效。[表达式 for 变量 in 可迭代对象 if 条件]可迭代对象如列表、元组、字符串、range等例# 定义二维数组 mp [[0] * 5 for i in range(5)][0] * 5创建一个包含 5 个0的列表[0, 0, 0, 0, 0]。for i in range(5)这个列表推导式会执行 5 次。enumerate函数是 Python 的内置函数用于在遍历可迭代对象时同时获取元素的索引和值enumerate(可迭代对象, start0)可迭代对象如列表、元组、字符串等。enumerate返回一个枚举对象每次迭代返回一个元组(index, value)其中index元素的索引。value元素的值例s abc那么enumerate(s)相当于得到i 0, ch a i 1, ch b i 2, ch c其实等价于for i in range(len(s)): ch s[i]又例for index,app in enumerate(apple): if app[0] a b: continue s - app[1] if s 0: break ans 1applevsapp的区别apple是整个列表存储所有苹果的信息例如apple [(3, 2), (5, 1), (2, 4), ...]app是apple中的单个苹果例如app (3, 2) # 第一个苹果x3高度y2体力消耗因此app[0]是当前苹果的高度xapp[1]是当前苹果的体力消耗y。6.元组Tuple元组是 Python 中的一种内置数据结构用于存储一组有序的元素。元组是不可变的Immutable即创建后不能修改即不能添加、删除或修改元素。元组用圆括号()表示元素之间用逗号,分隔my_tuple (1, 2, 3)元组中的元素是有序的可以通过索引访问。my_tuple (1, 2, 3) print(my_tuple[0]) # 输出1支持切片可以通过切片操作获取子元组。例如my_tuple (1, 2, 3, 4, 5) print(my_tuple[1:4]) # 输出(2, 3, 4)7.列表列表是 Python 中最常用的数据结构之一用于存储一组有序的元素。列表是可变的Mutable即创建后可以修改其内容。列表用方括号[]表示元素之间用逗号,分隔my_list [1, 2, 3]修改my_list [1, 2, 3]my_list[0] 10 # 修改第一个元素print(my_list) # 输出[10, 2, 3]8.切片1.概述切片是 Python 中用于从序列如列表、字符串、元组等中提取子序列的操作。切片通过指定起始索引、结束索引和步长来提取元素。序列[起始索引:结束索引:步长]起始索引切片的起始位置包含。结束索引切片的结束位置不包含。步长每隔多少个元素取一个默认为 1。左闭右开my_list [1, 2, 3, 4, 5] print(my_list[1:4]) # 输出[2, 3, 4]2. [::-1]切片操作用于反转列表。values [1, 2, 3]print(values[::-1]) # 输出[3, 2, 1]c {a: 3, b: 1, c: 2}d sorted(list(c.values()))[::-1]print(d) # 输出[3, 2, 1]将字典c的值按降序排列并赋值给变量d。9.解包讲解解包是 Python 中一种将序列如列表、元组或字典中的元素拆分并赋值给多个变量的操作。解包可以让我们更方便地处理多个值。遍历序列for time, idx in indexed_times:遍历indexed_times列表中的每个元素。indexed_times是一个元组列表每个元组包含接水时间time和对应的编号idx。使用解包语法将元组中的time和idx分别赋值给变量。列表/元组的解包a, b, c [1, 2, 3] #将列表 [1, 2, 3]中的元素分别赋值给变量 a、b、c10.lambda()函数lambda是 Python 中的匿名函数用于定义简单的函数。lambda 参数: 返回值competitions.sort(keylambda x: x[1])#lambda x: x[1]是一个匿名函数接受一个参数x并返回x[1]。competitions是一个列表其中每个元素是一个元组表示一个比赛的开始时间和结束时间。例如competitions [(0, 2), (2, 4), (1, 3)]x是lambda函数的参数表示competitions列表中的每个元素即每个比赛的元组x[1]是元组的第二个元素即比赛的结束时间。11.输出join()语句join()是 Python 字符串的一个方法用于将一个可迭代对象通常是列表或元组中的多个字符串元素合并成一个字符串并用指定的分隔符连接。分隔符.join(可迭代对象)分隔符可以是任意字符串包括空字符串必须作用于字符串元素可迭代对象中的所有元素必须是字符串类型。如果有数字需要先转换为字符串。使用 .join(map(str, numbers))将排序后的数字列表转换为空格分隔的字符串。int(.join(li)[:-1]).join(li)用空字符串连接列表li的所有元素直接拼接。[:-1]去掉最后一个字符哨兵0。12.字典1.字典da {1: 2,2: 3,4: 1}#这意味着键Key是 1、2、4值Value分别是 2、3、1你可以用da[1]获取键为1的值也可以用da[2]设置键为2的值。2. get(key, default)如果key存在于字典中返回对应的值如果key不存在返回default值这里是0count {} for num in votes: count[num] count.get(num, 0) 13. dict.items()items()是 Python 字典dict的一个非常重要的方法它的作用是返回字典中所有的键值对并且以元组形式返回。每个元组的第一个元素是键key第二个元素是值valueda {1: a, 2: b, 3: c}for i, j in da.items():print(i, j)#输出1 a2 b3 c13.set()n_l list(set(map(int,input().split( ))))将map对象转换为集合自动去重[1, 2, 2, 3]→{1, 2, 3}14. defaultdictfrom collections import defaultdictd defaultdict(default_factory)defaultdict是内置 dict 类的子类。在字典中获取一个 key 有两种方法, 第一种 get , 第二种 通过 [] 获取使用dict时如果引用的Key不存在就会抛出KeyError。如果希望key不存在时返回一个默认值就可以用defaultdict。其中default_factory是一个可调用对象通常是类型如int,list,set等用于在 key 不存在时提供默认值。P1102 A-B 数对 - 洛谷例time defaultdict(int)for i in num:time[i] 1time一个字典用来统计每个数字出现的次数默认值为 0。这一步是遍历整个数列对每个数字i计数。举个例子输入[1, 3, 5, 7, 9, 3]计数结果是time {1:1, 3:2, 5:1, 7:1, 9:1}15.round()round()是 Python 的一个内置函数用来四舍五入。round(number, ndigits) #number你要四舍五入的那个数ndigits保留到小数点后几位。round(3.14159, 2) → 3.14round(2.71828, 3) → 2.718round(5.5555, 0) → 6.016. abs()和all均为Python 里的内置函数。abs返回一个数的绝对值absolute valueall()判断所有条件是否都为 True接收一个可迭代对象比如列表、生成器表达式如果里面所有元素都为True返回True否则返回FalseP1024 [NOIP 2001 提高组] 一元三次方程求解 - 洛谷all(abs(root - r) 0.99 for r in roots)对每一个r在已找到的根中只要abs(root - r) 0.99都成立就返回True。17.strip()方法strip()是字符串方法用于移除字符串首尾的空白字符包括空格、制表符\t、换行符\n等。18.global关键字global关键字用于在函数内部声明一个变量是来自于全局作用域的而不是当前函数作用域局部作用域的。主要用途是允许你在函数内部修改全局变量的值。19. py和c对应关系C Python int int double float string str bool bool vectorint list[int] vectorstring list[str]20.nums.sort(keyabs, reverseTrue)sort()是列表 list 自带的方法会直接修改原列表。默认是升序排序。nums.sort(keyabs, reverseTrue)常见格式列表.sort(key排序依据, reverse是否降序)key abs 表示按绝对值排序。然后reverseTrue 表示从大到小。比如nums [-4, -2, 3, 1]排序以后[-4, 3, -2, 1]
返回列表