当前位置: 首页 > news >正文

【Python数据分析】Python常用内置函数(二)

🎉欢迎来到Python专栏~Python常用内置函数(二)


  • ☆* o(≧▽≦)o *☆~我是小夏与酒🍹
  • 博客主页:小夏与酒的博客
  • 🎈该系列文章专栏:Python学习专栏
  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️
    图标

CSDN

🎉 目录-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默认为0step默认为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的那些元素。如果指定函数funcNone,则返回的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', '.,?!']

csdn

🧸结尾


  • ❤️ 感谢您的支持和鼓励! 😊🙏
  • 📜您可能感兴趣的内容:
  • 【Python】Python实现串口通信(Python+Stm32)
  • 【FPGA】串口通信讲解-状态机判断数据值
  • 【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯
  • 【全网首发开源教程】【Labview机器人仿真与控制】Labview与Solidworks多路支配关系-四足爬行机器人仿真与控制
    遇见未来
http://www.lryc.cn/news/101336.html

相关文章:

  • Api接口出现Required request body is missing的解决方法
  • 【Kaggle】Kaggle数据集如何使用命令语句下载?
  • android pdf框架,编译mupdf
  • 线性表详细讲解
  • 代码随想录算法训练营day45
  • 机器学习深度学习——softmax回归(上)
  • 基于express调用chatgpt文字流输出和有道智云语音合成
  • (学习笔记-内存管理)内存分段、分页、管理与布局
  • PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案
  • 【数据结构】这堆是什么
  • FFmpeg 音视频开发工具
  • Go 语言 select 都能做什么?
  • Hive之窗口函数lag()/lead()
  • Vite+Typescript+Vue3学习笔记
  • 二、SQL-6.DCL-2).权限控制
  • [OpenStack] GPU透传
  • 无涯教程-jQuery - Progressbar组件函数
  • [SQL挖掘机] - 窗口函数 - rank
  • VBAC多层防火墙技术的研究-状态检测
  • PHP8的数据类型-PHP8知识详解
  • 明晚直播:可重构计算芯片的AI创新应用分享!
  • flask 点赞系统
  • 关于Java的多线程实现
  • 如何判断某个视频是深度伪造的?
  • ESP32(MicroPython) 四足机器人(一)
  • 力扣刷题记录---利用python实现链表的基本操作
  • OpenAI重磅官宣ChatGPT安卓版本周发布,现已开启下载预约,附详细预约教程
  • PHP 支付宝支付、订阅支付(周期扣款)整理汇总
  • python-pytorch基础之神经网络回归
  • linux中通过.desktop文件执行bash命令打开chrome浏览器并传参