【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多层防火墙技术的研究-状态检测
黑客技术的提升和黑客工具的泛滥,造成大量的企业、机构和个人的电脑系统遭受程度不同的入侵和攻击,或面临随时被攻击的危险。迫使大家不得不加强对自身电脑网络系统的安全防护,根据系统管理者设定的安全规则把守企业网络,提供强大的、应用选通、信息过滤、流量控制、网络侦…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

