【Python数据分析】Python常用内置函数(二)
🎉欢迎来到Python专栏~Python常用内置函数(二)
- ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹
- ✨博客主页:小夏与酒的博客
- 🎈该系列文章专栏:Python学习专栏
- 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
- 📜 欢迎大家关注! ❤️
🎉 目录-Python常用内置函数(二)
- 一、说明
- 二、基本输入/输出
- 三、range()
- 四、zip()
- 五、map()、reduce()、filter()
一、说明
Python技能树:Python入门技能树。
版本:Python 3.10。
IDE:PyCharm。
参考书籍:《Python数据分析、挖掘与可视化》。
基础文章:
1、【Python】Python基础知识总结。
2、【Python】PyCharm中调用另一个文件的函数或类。
3、【Python数据分析】Python基础知识篇。
4、【Python数据分析】Python基本数据类型。
二、基本输入/输出
1、input()
内置函数
input()
用来接收用户的键盘输入,不论用户输入什么内容,input()
一律返回字符串,必要时使用内置函数int()
、float()
或eval()
对用户输入的内容进行类型转换。
num = int(input('请输入一个大于2的自然:'))# 除2的余数为1的整数为奇数,能被2整除的整数为偶数
if num%2 == 1:print('这个是奇数')
else:print('这个是偶数')# 运行结果:
请输入一个大于2的自然:11
这个是奇数
lst = eval(input('请输入一个若干自然数的列表:'))print('列表中所有元素之和为:', sum(lst))# 运行结果:
请输入一个若干自然数的列表:[1,2,3,4,5]
列表中所有元素之和为: 15
2、print()
print()
的语法格式如下:
print(value1,value2,...,sep='',end='\n')
sep
参数之前为需要输出的内容(可以有多个);
sep
参数用于指定数据之间的分隔符,如果不指定则默认为空格;
end
参数表示输出完所有数据之后的结束符,如果不指定则默认为换行符。
print(1,2,3,4,5) # 默认情况,使用空格作为分隔符
print(1,2,3,4,5,sep=',') # 指定使用逗号作为分隔符
print(1,2,3,4,5,end=' ') # 输出完所有数据之后,以空格结束,不换行
print(6,7)# 运行结果:
1 2 3 4 5
1,2,3,4,5
1 2 3 4 5 6 7
三、range()
range()
的语法格式如下:
range([start,] stop [, step] ),
其中,参数
start
默认为0
,step
默认为1
。该函数有range(stop)
、range(start,stop)
和range(start,stop,step)
三种用法,返回具有惰性求值特点的range
对象,其中包含左闭右开区间[start,stop)
内以step
为步长的整数范围。
该函数返回的
range
对象可以转换为列表、元组或集合,可以使用for循环
直接遍历其中的元素,并且支持下标和切片。
range1 = range(4) # 只指定stop为4,start默认为0,step默认为1
range2 = range(5,8) # 指定start=5和stop=8,step默认为1
range3 = range(3,20,4) # 指定start=3,stop=20,step=4
range4 = range(20,0,-3) # step也可以是负数
print(range1,range2,range3,range4)print(range4[2])print(list(range1),list(range2),list(range3),list(range4))for i in range(10):print(i,end=' ')# 运行结果:
range(0, 4) range(5, 8) range(3, 20, 4) range(20, 0, -3)
14
[0, 1, 2, 3] [5, 6, 7] [3, 7, 11, 15, 19] [20, 17, 14, 11, 8, 5, 2]
0 1 2 3 4 5 6 7 8 9
四、zip()
内置函数
zip()
用来把多个可迭代对象中对应位置上的元素分别组合到一起,返回一个可迭代的zip对象
,其中每个元素都是包含原来的多个可迭代对象对应位置上元素的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个,可以把zip对象
转换为列表或元组之后查看其中的内容,也可以使用for循环
逐个遍历其中的元素。
在使用该函数时要特别注意,
zip对象
中的每个元素都只能使用一次,访问过的元素不可再次访问;并且,只能从前往后逐个访问zip对象
中的元素,不能使用下标直接访问指定位置上的元素;zip对象
不支持切片操作,也不能作为内置函数len()
和reversed()
的参数。
data = zip('1234', [1,2,3,4,5,6])
print(data)# 在转换为列表时,使用了zip对象中的全部元素,zip对象中不再包含任何内容
print(list(data))# 如果需要再次访问其中的元素,必须重新创建zip对象
data = zip('1234', [1,2,3,4,5,6])
print(tuple(data))data = zip('1234', [1,2,3,4,5,6])
# zip对象是可迭代的,可以使用for循环逐个遍历和访问其中的元素
for item in data:print(item)# 运行结果:
<zip object at 0x0000026601D5BE40>
[('1', 1), ('2', 2), ('3', 3), ('4', 4)]
(('1', 1), ('2', 2), ('3', 3), ('4', 4))
('1', 1)
('2', 2)
('3', 3)
('4', 4)
五、map()、reduce()、filter()
1、map()
map()
的语法格式如下:
map(func, *iterables)
map()
函数把一个可调用对象func
依次映射到序列的每个元素上,并返回一个可迭代的map对象
,其中每个元素是原序列中元素经过可调用对象func
处理后的结果,该函数不对原序列做任何修改。
该函数返回的
map对象
可以转换为列表、元组或集合,也可以直接使用for循环
遍历其中的元素,但是map对象
中的每个元素只能使用一次。
from operator import addprint(map(str, range(5)))
print(list(map(str, range(5))))
print(list(map(len, ['abc', '1234', 'test'])))# 使用operator标准库中的add运算,add运算相当于运算符+
# 如果map()函数的第一个参数func,是能够接收两个参数的可调用对象,则可以映射到两个序列上
for num in map(add, range(5), range(5,10)):print(num)# 运行结果:
<map object at 0x00000141CE8D2380>
['0', '1', '2', '3', '4']
[3, 4, 4]
5
7
9
11
13
2、reduce()
在Python 3.x 中,reduce()不是内置函数,而在标准库functools中,需要导入之后才能使用。
reduce()
的语法格式:
reduce(func, seq[, initial])
函数
reduce()
可以将一个接收2个参数的函数以迭代的方式从左到右依次作用到一个序列或可迭代对象的所有元素上,并且每一次计算的中间结果直接参与下一次计算,最终得到一个值。
例如,继续使用
operator
标准库中的add
运算,那么表达式reduce(add,[1,2,3,4,5])
计算过程为((((1+2)+3)+4)+5)
。
from functools import reduce
from operator import add, mul, or_seq = range(1,10)
print(reduce(add, seq)) # 累加seq中的数字
print(reduce(mul, seq)) # 累乘seq中的数字
seq = [{1}, {2}, {3}, {4}]
print(reduce(or_, seq)) # 对seq中的集合连续进行并集运算# 运行结果:
45
362880
{1, 2, 3, 4}
3、filter()
内置函数filter()用于使用指定函数描述的规则对序列中的元素进行过滤。
filet()的语法格式如下:
filter(func or None, iterable)
在语法上,
filter()
函数将一个函数func
作用到一个序列上,返回一个filter对象
,其中包含原序列中使得函数func返回值等价于True
的那些元素。如果指定函数func
为None
,则返回的filter对象
中包含原序列中等价于True
的元素。
和
生成器对象
、map对象
、zip对象
、reversed对象
一样,filter对象
具有惰性求值的特点,其中每个元素只能使用一次。
seq = ['abcd', '1234', '.,?!', '']
print(list(filter(str.isdigit, seq))) # 只保留数字字符串
print(list(filter(str.isalpha, seq))) # 只保留英文字母字符串
print(list(filter(str.isalnum, seq))) # 只保留数字字符串和英文字符串
print(list(filter(None, seq))) # 只保留等价于True的元素# 运行结果:
['1234']
['abcd']
['abcd', '1234']
['abcd', '1234', '.,?!']
🧸结尾
- ❤️ 感谢您的支持和鼓励! 😊🙏
- 📜您可能感兴趣的内容:
- 【Python】Python实现串口通信(Python+Stm32)
- 【FPGA】串口通信讲解-状态机判断数据值
- 【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯
- 【全网首发开源教程】【Labview机器人仿真与控制】Labview与Solidworks多路支配关系-四足爬行机器人仿真与控制
相关文章:

【Python数据分析】Python常用内置函数(二)
🎉欢迎来到Python专栏~Python常用内置函数(二) ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文…...
Api接口出现Required request body is missing的解决方法
目录 1.问题所示2.原理分析3.解决方法1.问题所示 在使用PostMan 测试接口的时候,出现如下问题: {"code": 400,"success": false,"data": {},"msg":...

【Kaggle】Kaggle数据集如何使用命令语句下载?
一、Kaggle数据集如何下载 1.1 问题的起因 最近看到了 Google 组织的 Kaggle 比赛,想自己试一下,但是数据集太大了,将近有370G的数据。直接下载的话,网速太慢,可能要下载3-4天,所以萌生了用命令语句下载的…...
android pdf框架,编译mupdf
因为mupdf编译的体积不小,之前也发过编译的文章,现在更新一下. 建一个mupdf_c目录,名字自己取,在里面git下载mupdf源码,把目录修改为libmupdf mupdf_c目录下建build.gradle文件,内容如下 apply plugin: com.android.library apply plugin: maven-publishgroup com.artifex.…...

线性表详细讲解
2.1 线性表的定义和特点2.2 案例引入2.3 线程表的类型定义2.4 线性表的顺序表示和实现2.4.1 线性表的顺序存储表示2.4.2 线性表的结构类型定义2.4.3 顺序表基本操作的实现2.4.4 顺序表总结 2.5 线性表的链式表示和实现2.5.1 线性表的链式存储表示2.5.2 单链表的实现(…...
代码随想录算法训练营day45
文章目录 Day45爬楼梯题目思路代码 零钱兑换题目思路代码 完全平方数题目思路代码 Day45 爬楼梯 70. 爬楼梯 - 力扣(LeetCode) 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢…...

机器学习深度学习——softmax回归(上)
👨🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——线性回归的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所…...
基于express调用chatgpt文字流输出和有道智云语音合成
express是基于node.js的一个web框架,可以更加简洁的去创建一个后台服务,由于项目的需要,引入和typescript,经过几天的努力实现了chatgpt文字流输出有道智云语音合成的结合(略有遗憾),下面我记载…...

(学习笔记-内存管理)内存分段、分页、管理与布局
内存分段 程序是由若干个逻辑分段组成的,比如可由代码分段、数据分段、栈段、堆段组成。不同的段是有不同的属性的,所以就用分段的形式把这些分段分离出来。 分段机制下,虚拟地址和物理地址是如何映射的? 分段机制下的虚拟地址由…...

PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案
宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案 前言一、Redis安装部署1.安装Redis2.php安装Redis扩展3.启动Redis 二、避坑指南1.6379端口配置2.Redis服务启动(1)Redis服务启动失败(2)Redis启动日志排查(3&a…...

【数据结构】这堆是什么
目录 1.二叉树的顺序结构 2.堆的概念及结构 3.堆的实现 3.1 向上调整算法与向下调整算法 3.2 堆的创建 3.3 建堆的空间复杂度 3.4 堆的插入 3.5 堆的删除 3.6 堆的代码的实现 4.堆的应用 4.1 堆排序 4.2 TOP-K问题 首先,堆是一种数据结构,一种特…...

FFmpeg 音视频开发工具
目录 FFmpeg 下载与安装 ffmpeg 使用快速入门 ffplay 使用快速入门 FFmpeg 全套下载与安装 1、FFmpeg 是处理音频、视频、字幕和相关元数据等多媒体内容的库和工具的集合。一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。 官网:http…...
Go 语言 select 都能做什么?
原文链接: Go 语言 select 都能做什么? 在 Go 语言中,select 是一个关键字,用于监听和 channel 有关的 IO 操作。 通过 select 语句,我们可以同时监听多个 channel,并在其中任意一个 channel 就绪时进行相…...

Hive之窗口函数lag()/lead()
一、函数介绍 lag()与lead函数是跟偏移量相关的两个分析函数 通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤,该操作可代替表的自联接,且效率更高 lag()/lead() lag(c…...

Vite+Typescript+Vue3学习笔记
ViteTypescriptVue3学习笔记 1、项目搭建 1.1、创建项目(yarn) D:\WebstromProject>yarn create vite yarn create v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages...success Installed…...

二、SQL-6.DCL-2).权限控制
*是数据库和表的通配符,出现在数据库位置上表示所有数据库,出现在表名位置上,表示所有表 %是主机名的通配符,表示所有主机。 e.g.所有数据库(*)的所有表(*)的所有权限(a…...
[OpenStack] GPU透传
GPU透传本质就是PCI设备透传,不算是什么新技术。之前按照网上方法都没啥问题,但是这次测试NVIDIA A100遇到坑了。 首先是禁用nouveau 把intel_iommuon rdblacklistnouveau写入/etc/default/grub的cmdline,然后grub2-mkconfig -o /etc/grub2.c…...

无涯教程-jQuery - Progressbar组件函数
小部件进度条功能可与JqueryUI中的小部件一起使用。一个简单的进度条显示有关进度的信息。一个简单的进度条如下所示。 Progressbar - 语法 $( "#progressbar" ).progressbar({value: 37 }); Progressbar - 示例 以下是显示进度条用法的简单示例- <!doctype …...
[SQL挖掘机] - 窗口函数 - rank
介绍: rank() 是一种常用的窗口函数,它为结果集中的每一行分配一个排名(rank)。这个排名基于指定的排序顺序,并且在遇到相同的值时,会跳过相同的排名。 用法: rank() 函数的语法如下: rank() over ([pa…...
VBAC多层防火墙技术的研究-状态检测
黑客技术的提升和黑客工具的泛滥,造成大量的企业、机构和个人的电脑系统遭受程度不同的入侵和攻击,或面临随时被攻击的危险。迫使大家不得不加强对自身电脑网络系统的安全防护,根据系统管理者设定的安全规则把守企业网络,提供强大的、应用选通、信息过滤、流量控制、网络侦…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...