python基础技巧总结(五)
前四期到博客找:https://blog.csdn.net/hebtu666
我们继续说一些好用的函数
split
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串。
语法:
str.split(str="", num=string.count(str))
简化:
str.split("")
结合第四期所学知识,我们可以写出这一行代码
print
(
" "
.join(
input
().split(
" "
)[::
-
1
]))
实现功能:给定一个句子(只包含字母和空格),将句子中的单词位置反转,单词用空格分割,单词之间只有一个空格,前后没有空格。比如:(1)“hello xiao mi” - >“ mi xiao你好“
再举一例:
将两个整型数组按照升序合并,并且过滤掉重复数组元素
输入参数:
int* pArray1 :整型数组1
intiArray1Num:数组1元素个数
int* pArray2 :整型数组2
intiArray2Num:数组2元素个数
对于python来说,给个数没什么卵用。
a,b,c,d=input(),list(map(int,input().split())),input(),list(map(int,input().split()))
print("".join(map(str,sorted(list(set(b+d))))))
我们把最近的知识结合起来做一道题:
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
result=""
for i in input()[::-1]:if i not in result:result+=i
print(result)
还有很多具体的简洁操作,这里就不再举例子了,多体会吧。
好,我们继续其它函数。
filter
Python内建的filter()
函数用于过滤序列。
和map()
类似,filter()
也接收一个函数和一个序列。和map()
不同的是,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素。
简单例子,删掉偶数:
def is_odd(n):return n % 2 == 1list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
# 结果: [1, 5, 9, 15]
我们可以用所学知识实现埃氏筛:
埃氏筛相关知识:https://blog.csdn.net/hebtu666/article/details/81486370
本代码非原创:
#先构造一个从3开始的奇数序列:
def _odd_iter():n = 1while True:n = n + 2yield n
#这是一个生成器,并且是一个无限序列。#筛选函数
def _not_divisible(n):return lambda x: x % n > 0
#生成器
def primes():yield 2it = _odd_iter() # 初始序列while True:n = next(it) # 返回序列的第一个数yield nit = filter(_not_divisible(n), it) # 构造新序列
利用filter()
不断产生筛选后的新的序列
Iterator
是惰性计算的序列,所以我们可以用Python表示“全体自然数”,“全体素数”这样的序列,而代码非常简洁。
sorted
复制过来的,因为写的很好很好,相比之下,我自己写的太差劲了。
>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]
#可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:
>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]
我们再看一个字符串排序的例子:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']
默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' < 'a'
,结果,大写字母Z
会排在小写字母a
的前面。
现在,我们提出排序应该忽略大小写,按照字母序排序。要实现这个算法,不必对现有代码大加改动,只要我们能用一个key函数把字符串映射为忽略大小写排序即可。忽略大小写来比较两个字符串,实际上就是先把字符串都变成大写(或者都变成小写),再比较。
这样,我们给sorted
传入key函数,即可实现忽略大小写的排序:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
['about', 'bob', 'Credit', 'Zoo']
要进行反向排序,不必改动key函数,可以传入第三个参数reverse=True
:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']
从上述例子可以看出,高阶函数的抽象能力是非常强大的,而且,核心代码可以保持得非常简洁。
sorted()
也是一个高阶函数。用sorted()
排序的关键在于实现一个映射函数。
基础技巧总结持续更新。。。。。。
python基础技巧总结(五)相关推荐
- Python 基础课程第五天
Python 基础课程第五天 第四章:控制语句 循环结构 for循环和可迭代对象遍历 可迭代对象 range 对象 嵌套循环和综合练习 break 语句 continue 语句 else 语句 循环代 ...
- python基础技巧总结(一)
最近总结一下python基础知识,就暂时弃坑了. 本文总结只属于python的一些骚操作... 后面文章自行去博客学习交流 原地交换 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方 ...
- python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...
一.前提回忆: 1.类是用来描述某一类的事物,类的对象就是这一类事物中的一个个体.是事物就要有属性,属性分为 1:数据属性:就是变量 2:函数属性:就是函数,在面向对象里通常称为方法 注意:类和对象均 ...
- Python基础(十五)——函数
本文以Python3以上为学习基础. 1.函数概念 对于函数,我们先看看数学中:y=x+1. 这就是一个数学的一次函数.不过更多是写作f(x) = x + 1.我肯可以看到,我们给x不一样的值,最后的 ...
- Python基础总结(五) 组合数据类型
目录 第五章:组合数据类型 一.列表: (一)列表元素查找: (二)列表元素添加: (三)列表元素排序: (四)列表元素修删: (五)列表生成式(推导式): (六):zip() 和enumerate( ...
- python基础学习(五)第一次修改
python3.5使用 第五天: 我这次要讲的东西是循环是什么呢,我用用张流程图来告诉大家(主要是流程图容易理解) 对的就是这样当条件满足时就结束循环 1 while True: 2 print('h ...
- Python基础教程(五):数字、字符串
Python 数字 Python 数字数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变数字数据类型得值,将重新分配内存空间. 以下实例在变量赋值时数字对象将被创建: var1 = 1 ...
- python 输入字符串_输入输出,字符串如影随形 | Python基础连载(五)
更好的排版阅读体验,请移步 微信端 开篇 前面两期详细的介绍了字符串及其相关操作,在今后的编程中,你将经常和字符串打交道.一个比较常见的场景就是输入输出,所以本期将结合字符串,讲述最基本同时也是最常用 ...
- python基础技巧总结(四)
前三期请到我博客里找 https://blog.csdn.net/hebtu666 我们继续总结 except的用法和作用 try/except: 捕捉由PYTHON自身或写程序过程中引发的异常并恢复 ...
最新文章
- web 前端绘制折线_前端每日实战:苦练 CSS 基本功——图解辅助线的原理和画法...
- 【AI初识境】激活函数:从人工设计到自动搜索
- Shrio 自定义算法登录认证
- 锐动SDK针对游戏直播提出的解决方案
- mysql使用索引扫描做排序_「Mysql索引原理(八)」使用索引扫描做排序
- gcc android开发环境,[RK3399][Android7.1]开发环境搭建
- Jetbrains 系 IDE 编辑器的代码提示功能
- MATLAB使用教程
- ARM嵌入式系统网络驱动中的重要数据结构
- OSI模型第一层物理层
- 反欺骗的艺术-摘记(持续更新中)
- webservice框架
- BT3下载 与 BT3 U盘版制作
- 诛仙服务器技能修改,【诛仙422】自己修改的特色一键端(2018.10.11号更新修复BOOS不刷新BUG)技能修改补丁...
- 实现语音视频录制源码分享
- vue.runtime.esm.js?2b0e:619 [Vue warn]: Property “XX“ must be accessed with “$data._tos“ because
- 强大的文件管理利器-恒辉通用文件管理工具
- 机械原理习题-(附答案)
- Android4.0 ext disk auto mount [including sd mmc sata udisk]
- 使用hexo+github pages搭建博客
热门文章
- 摄像头图像分析目标物体大小位置_摄像头的原理、组成、选型及应用
- windows下手动配置ipv6地址
- Asterisk权威指南/第六章 拨号计划基础
- 信道容量受哪三个要素_影响信道容量的主要因素有哪些
- 【转】1.1【MySQL】基本SQL语句大全
- 【转】C#开发笔记之05-迭代器中的状态机(State Machine)到底是什么?
- 开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源
- 第六节:框架搭建之EF的Fluent Api模式的使用流程
- 将 Palo Alto Networks 连接到 Azure Sentinel
- 【转】[SharePoint 开发详解] 一个Feature中使用SPGridView的几个Tips