【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多层防火墙技术的研究-状态检测
黑客技术的提升和黑客工具的泛滥,造成大量的企业、机构和个人的电脑系统遭受程度不同的入侵和攻击,或面临随时被攻击的危险。迫使大家不得不加强对自身电脑网络系统的安全防护,根据系统管理者设定的安全规则把守企业网络,提供强大的、应用选通、信息过滤、流量控制、网络侦…...
云顶之弈策略优化工具:TFT Overlay如何提升游戏决策效率
云顶之弈策略优化工具:TFT Overlay如何提升游戏决策效率 【免费下载链接】TFT-Overlay Overlay for Teamfight Tactics 项目地址: https://gitcode.com/gh_mirrors/tf/TFT-Overlay 在云顶之弈激烈的对战中,玩家常常面临装备合成路径混乱、羁绊触发…...
DanKoe 视频笔记:人生规划:20-30 岁是教程阶段,切勿虚度 [特殊字符]
在本节课中,我们将要学习如何正确看待并规划你的20-30岁。这个阶段并非人生的“主游戏”,而是关键的“教程”阶段。我们将探讨常见的陷阱和有效的策略,帮助你为未来打下坚实基础,避免陷入平庸的循环。 这封信的内容可能会让一些人…...
AI 面试系统设计题怎么准备?5 个完整案例 + 回答框架
AI 面试系统设计题怎么准备?5 个完整案例 回答框架(CSDN 教程版) 摘要:系统设计题是 AI 面试中最能拉开差距的环节。本文提供 5 个完整案例和通用回答框架,帮助工程师高效准备 AI 面试系统设计题。 前言 系统设计题是…...
AQ智商测试
AQ逆商测试结果分析(PSYTOPIC版) Psytopic分析:您的AQ得分是 168 ,在人群中属较高水平 。 以下是PSYTOPIC为您提供的分析参考: 你能面对现实,对来自工作和生活中的困难应对自如,并敢于迎接逆境…...
Graphormer开源模型多场景落地:高校科研、药企CADD、新材料研发实操路径
Graphormer开源模型多场景落地:高校科研、药企CADD、新材料研发实操路径 1. 项目概述 Graphormer是一种基于纯Transformer架构的图神经网络模型,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。该模型在OGB、PCQM4M…...
Elixir Plug安全防护:CSRF保护、SSL强制与基础认证的终极教程
Elixir Plug安全防护:CSRF保护、SSL强制与基础认证的终极教程 【免费下载链接】plug Compose web applications with functions 项目地址: https://gitcode.com/gh_mirrors/pl/plug Elixir Plug 是一个强大的 Web 应用构建工具,提供了全面的安全防…...
Clipboard命令行参数完整指南:掌握所有可用选项的终极手册
Clipboard命令行参数完整指南:掌握所有可用选项的终极手册 【免费下载链接】Clipboard 😎🏖️🐬 Your new, 𝙧𝙞𝙙𝙤𝙣𝙠𝙪𝙡…...
AI命理推理实测:用专业数据集验证大模型命理能力
提到AI命理相关的评测,就不得不说之前看到的,我们团队最近也沿着这个方向做了针对性测试,不是网上那种随便给大模型发个prompt就喊“准到离谱”的营销玩法,而是用有标准答案的盲测来验证AI命理推理的真实水平。 我们的评测是怎么…...
为什么你的Java车载服务在-40℃冷启动失败?温度敏感型ClassLoader加载异常的12小时紧急修复路径
第一章:为什么你的Java车载服务在-40℃冷启动失败?温度敏感型ClassLoader加载异常的12小时紧急修复路径低温环境并非仅影响硬件可靠性——JVM 的类加载机制在极端低温下会触发底层文件系统与内存映射的隐式行为偏移。某车规级 Java 服务在-40℃冷启动时反…...
【仅限首批认证用户开放】Polars 2.0企业清洗最佳实践白皮书(含GDPR脱敏DSL语法速查表)
第一章:Polars 2.0企业级数据清洗能力全景概览Polars 2.0 将数据清洗从“脚本式修补”推向“工程化流水线”,依托零拷贝内存模型、并行执行引擎与声明式 API,原生支持高吞吐、低延迟、强一致性的清洗任务。其核心能力不再依赖 Pandas 风格的链…...

