基础语法复习

news2024/11/24 9:00:40

常用的定义:

读取数据加速:

input = sys.stdin.readline

设置递归深度:

sys.setrecursionlimit(100000)

记忆化搜索:

from functools import lru_cache 
@lru_cache(maxsize=None)

计数器:

Counter 类是一个非常有用的工具,用于对可迭代对象中的元素进行计数。

例如,假设您有一个列表,其中包含一些元素,您想知道每个元素在列表中出现了多少次,这时您就可以使用 Counter

以下是一个简单的示例:

from collections import Counter # 创建一个列表 
my_list = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'] # 使用 Counter 对象统计列表中元素的出现次数 
my_counter = Counter(my_list) # 输出每个元素的出现次数 
print(my_counter)

这将输出:

Counter({'apple': 3, 'banana': 2, 'orange': 1})

自定义排序

functools.cmp_to_key(func)

旧式函数,在类似于吗sort,min等函数上使用

此函数主要用作将 Python 2 程序转换至新版的转换工具,以保持对比较函数的兼容。比较函数是任何接受两个参数,对它们进行比较,并在结果为小于时返回一个负数,相等时返回零,大于时返回一个正数的可调用对象。 键函数是接受一个参数并返回另一个用作排序键的值的可调用对象。示例:sorted(iterable, key=cmp_to_key(locale.strcoll))

蓝桥2122

import functools

n = int(input())
m = int(input())

def compare(a, b):
    sum1 = sum(map(int, str(a)))  # 计算a的各个数字之和
    sum2 = sum(map(int, str(b)))  # 计算b的各个数字之和
    
    if sum1 > sum2:
        return 1
    elif sum1 == sum2:
        if a < b:
            return -1
        else:
            return 1
    else:
        return -1

s = list(range(1, n + 1))
s.sort(key=functools.cmp_to_key(compare))
print(s[m-1])

基本数据类型:

 集合的妙用:

注意,使用集合去重之后不一定能保证原来的顺序。

#!/usr/bin/python3

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

print(sites)   # 输出集合,重复的元素被自动去掉

sites.add(6) # 添加元素6

sites.remobe(5) # 删除元素5

# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')


# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

print(a - b)     # a 和 b 的差集

print(a | b)     # a 和 b 的并集

print(a & b)     # a 和 b 的交集

print(a ^ b)     # a 和 b 中不同时存在的元素

 字典

#!/usr/bin/python3

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"


tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}


print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值
print (tinydict.items())  # 输出项
print (tinydict.get('name'))# 输出runoob
print (tinydict.copy())   # 复制字典

tinydict.pop('name') # runoob
tinydict.popitem('name', 'runoob')

字符串

find(str, beg=0, end=len(string))


检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

count()方法语法:

str.count(sub, start= 0,end=len(string))
  • sub -- 搜索的子字符串
  • start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

replace()方法语法:

str.replace(old, new[, max])
  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次

 

内置函数

list.sort( key=None, reverse=False)

  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

.format()格式化方法

位置参数:0,1,2

enumerate(iterable)

生成二元组的迭代对象

 zip(iter1,iter2..)

方法用于返回各个可迭代参数共同组成的元组

小技巧冷知识:

int('2022',9) 9进制的2022转为10进制

math库

abs(x)返回数字的绝对值,如abs(-10) 返回 10
ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5
exp(x)返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
pow(x, y)x**y 运算后的值。
round(x [,n])

返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。

其实准确的说是保留值将保留到离上一位更近的一端。

math.log(x, base) :以base为底的对数

for else循环体


一、chr

chr( {需要转换的Unicode编码} ),返回值是对应的字符

例1:输入数字 65-91,返回值是大写字母

chr(65) # A
chr(90) # Z

例2:输入数字 97-122,返回值是小写字母

chr(97) # a
chr(122) # z

二、ord

ord( {需要转换的字符} ),返回值是对应的Unicode编码

例1:

ord('b') # 98

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1580905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud微服务入门(五)

Sentinel的安装与使用 安装部署Sentinel 下载Sentinel&#xff1a; https://github.com/alibaba/Sentinel/releases Sentinel控制台 https://localhost:8080 用户和密码为sentinel 使用Sentinel 加依赖&#xff1a; 写配置&#xff1a; 输入&#xff1a; java -Dserver.po…

【React】React hooks 清除定时器并验证效果

React hooks 清除定时器并验证效果 目录结构如下useTime hookClock.tsx使用useTime hookApp.tsx显示Clock组件显示时间&#xff08;开启定时器&#xff09;隐藏时间&#xff08;清除定时器&#xff09; 总结参考 目录结构如下 useTime hook // src/hooks/common.ts import { u…

lora微调过程

import os import pickle from transformers import AutoModelForCausalLM from peft import get_peft_config, get_peft_model, get_peft_model_state_dict, LoraConfig, TaskTypedevice "cuda:0"#1.创建lora微调基本的配置 peft_config LoraConfig(task_typeTask…

CAN和LIN的DB9接口定义

文章目录 前言一、DB9实物及引脚二、LIN DB9三、CAN DB9总结前言 在日常汽车总线测试中,最主要的通信网络就是CAN网络,小伙伴们在测试时,经常会遇到使用DB9插头来测试、录取CAN总线报文,但是DB9插头内有9个插针,哪2个才是CAN-H和CAN-L呢? 一、DB9实物及引脚 DB9 接口是…

杨辉三角形(蓝桥杯,acwing)

题目描述&#xff1a; 下面的图形是著名的杨辉三角形&#xff1a; 如果我们按从上到下、从左到右的顺序把所有数排成一列&#xff0c;可以得到如下数列&#xff1a; 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ... 给定一个正整数 N&#xff0c;请你输出数列中第一次出现…

实验:基于Red Hat Enterprise Linux系统建立逻辑卷并进行划分

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 1. 为虚拟机添加三块大小为5GB的磁盘nvme0n2 nvme0n3 nvme0n4 2. 将三块硬盘转换为物理卷&#xff0c;并将nvme0n2 nvme0n3两pv建立成名为"自己名字_vg“的卷组&#xff0c;并将nvme0n4扩展进该卷组。 LVM管…

os.listdir()bug总结

今天测试出一个神奇的bug&#xff0c;算是教训吧&#xff0c;找了两天不知道问题在哪&#xff0c;最后才发现问题出现在这 原始文件夹显示 os.listdir()结果乱序 import os base_path "./file/"files os.listdir(base_path)print(files)问题原因 解决办法(排序) …

【论文解读】大模型事实性调查(上)

一、简要介绍 本调查探讨了大型语言模型&#xff08;llm&#xff09;中的事实性的关键问题。随着llm在不同领域的应用&#xff0c;其输出的可靠性和准确性变得至关重要。论文将“事实性问题”定义为llm产生与既定事实不一致的内容的概率。论文首先深入研究了这些不准确性的含义…

IO-DAY8

使用消息队列去实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复 A终端&#xff1a; #include<myhead.h> typedef struct msgbuf {lon…

B02、执行引擎-5

1、前言 1.1、什么是机器码 各种用二进制编码方式表示的指令&#xff0c;叫做机器指令码。开始&#xff0c;人们就用它采编写程序&#xff0c;这就是机器语言。机器语言虽然能够被计算机理解和接受&#xff0c;但和人们的语言差别太大&#xff0c;不易被人们理解和记忆&#x…

基于SSM框架实现的在线心理评测与咨询系统(技术栈 spring+springmvc+mybatis+jsp+jquery+css)

一、项目简介 本项目是一套基于SSM框架实现的在线心理评测与咨询系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&am…

小白学Java成长日记特别篇

晚上好&#xff0c;各位小伙伴。今天给大家带来的是Java的输出补充篇&#xff0c;前两篇说了输出和输入的大概&#xff0c;但我没有详细讲它俩&#xff0c;因此这篇文章来详细的聊一聊它俩。那么废话不多说&#xff0c;我们赶紧进入正题。 首先讲一讲这个Java的输出吧。 输出格…

使用MQTT.fx接入新版ONENet(24.4.8)

新版ONENet使用MQTT.fx 模拟接入 目录 新版ONENet使用MQTT.fx 模拟接入开始前的准备创建产品设备获取关键参数 计算签名使用MQTT.fx连接服务器数据流准备与上传数据流准备数据发送与接收 开始前的准备 创建产品 设备下载Token签名工具生成签名 创建产品设备 根据以下内容填写…

windows组播发不出去解决办法

由于开启了虚拟网卡&#xff0c;安装VMWare虚拟化软件&#xff0c;可能会通过虚拟网卡发送组播&#xff0c;需要禁用虚拟化网卡。

Linux网络名称空间的抽象设计以及借鉴意义

Linux作为一个强大的开源操作系统&#x1f427;&#xff0c;其网络虚拟化技术中的核心组件——网络名称空间&#xff08;Network Namespace&#xff09;&#xff0c;是对网络资源的一种高度抽象。网络名称空间允许系统内部存在多个隔离的网络环境&#xff0c;每个环境都有自己的…

数字图像处理与交叉学科中名词的拧巴

特征提取 图像处理——对图像、目标或特征点进行定量描述的方法及过程。 模式识别——对原特征进行特征变换&#xff0c;从高维空间到低维空间映射。 特征向量 模式识别、图像处理——一个观测包括多个变量&#xff0c;样本的多个特征组成特征向量。 线性代数——特征值对应的…

随机过程-BS定理

随机偏微分方程相比普通偏微分方程具有额外的随机项&#xff0c;反映了其描述的现象具有随机性质

请求转发和请求重定向的区别

请求转发(Forward)和请求重定向(Redirect)虽然都是 HTTP 服务器&#xff0c;处理客户端请求时进行(页面)跳转的实现方式&#xff0c;但是二者有以下 5 点不同: 1. 定义不同。 2. 跳转方不同。 3. 数据共享不同。 4.最终 URL 地址不同。 5.代码实现不同。 具体内容如下&…

第1章 MySQL概述

文章目录 第1章 MySQL概述1.1 前言1.2 MySQL安装1.3 常见的指令&#xff08;1&#xff09;MySQL的启动和关闭语句&#xff08;2&#xff09;MySQL的登录语句&#xff08;3&#xff09;MySQL的退出语句&#xff08;4&#xff09;查看MySQL的版本号&#xff08;5&#xff09;查看…

lgwr超时如何判断存储还是cpu问题?(等待事件各种类型和说明及相关查询)

通过awr报告看&#xff1a; 分析&#xff1a; log file parallel write平均等待8毫秒 log file sync平均等待402毫秒 排查&#xff1a; log file sync parallel write lgwr cpu log file parallel write等待少说明存储不慢。 所以&#xff1a;log file sync等待长是因为…