编者按:Python是机器学习的主流语言,没有之一。今年5月,它首次在PYPL排行榜上超越JAVA,成为全球第一大编程语言。而一个月后,Stack Overflow也分享了最新的编程语言浏览量统计数字,结果显示,Python的月活历史性地超越了Java和JavaScript,真正问鼎榜首。

“人生苦短,我选Python”。那么,你真的掌握了Python吗?

1. 交换变量

有时候,当我们要交换两个变量的值时,一种常规的方法是创建一个临时变量,然后用它来进行交换。比如:

# 输入

a = 5

b = 10

#创建临时变量

temp = a

a = b

b = temp

print(a)

print(b)

但在Python中,其实我们有一种更简洁的写法:

2. 将list中的所有元素转为单个字符串

列表和字符串是Python中最常见的数据类型,它们会遇到互相转换的需要。那么,我们该怎么把list中的所有元素转为字符串呢?

3. 查找list中出现次数最多的元素

给定一个包含多个元素的list,让你查找其中出现次数最多的元素,你会怎么做?在下图中,我们介绍了两种方法,其中第一种是利用max()函数的key参数,第二种则是使用Counter。

4. 判断两个字符串是否是anagram

所谓anagram,就是两个词所用的字母及其个数都是一样的,但是它们字母的位置不一样,比如abc,bac,acb。在Python中,Counter可以解决这个问题,

5. 字符串倒转

字符串倒转,就是把1234转成4321。下面我们介绍了三种方法:

方法一:最简单的切片法,a[::-1]就相当于a[尾:头:-1]。

方法二:用Python自带reversed()函数,它可被用于list倒转。

方法三:第三种是通过倒转数据类型和切片倒转整数。

在这里还是要推荐下我自己建的Python开发学习qun:699++749++852,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴  。

6. list倒转

和字符串倒转类似,切片法也可以被用于list倒转,如下面的第一种方法。第二种方法调用的是上面提到的reversed()函数。

7. 二维矩阵转置

如果要转置矩阵,可以直接使用使用zip()函数。除此之外,没有比import numpy更简单的方法了。

8. 链式比较

如果想输出数组中介于4-7之间的元素,java是这么写的:if( b > 4 && b < 7){ },但Python更人性化。包括最后一句1 == b < 20,这和C、java也很不一样。

9. 链式调用

在python中实现链式调用只需在函数返回对象自己就行了。

10. 复制list

如果是刚学习Python的C用户,你可能会想写b = a,但这是错的。在Python中,变量指向的是某个对象的标签。也就是说,按照这种的写法,b和a指向的是内存中的同一个列表,对b操作,就相当于对a操作。所以正确的写法有以下几种:

方法一:b=a[:]。

方法二:b=list(a)。

方法三:使用Python 3的copy()函数,直接复制list,类似a[:]。

方法四:使用copy.deepcopy()。

11. 判断一个key是否在字典中

如果目标key不在字典中,以下代码会返回None或default。

12. 按value排序字典

Python的内置字典数据类型是无序的,而key可以被用来获取对应的value。有时我们需要根据value对字典中的item进行排序输出。方法如下所示:

方法一:用sorted函数排序,其中key参数是lamda表达式。

方法二:用operator.itemgetter而不是lamda表达式进行排序。

方法三:如果只需得到排序后的key,可用.get。

13. for … else语法

14. 用逗号分隔list

下面分别是字符串list、数字list和混合list的逗号分隔方式。

15. 合并字典

方法一:Python 3.5可以存在重复键值,print({**d1,**d2})。

方法二:在内存中创建两个列表,再创建第三个列表,拷贝完成后,创建新的dict,删除掉前三个列表。

方法三:d1.update()。

16. list中的最小和最大索引

17. 从list中删除重复项

方法一:把list转成set,去除重复项,再转回list。

方法二:调用collections里的OrderedDict,和set差不多。

python编程思路不清晰_安利一波Python编程中非常实用的那些黑魔法相关推荐

  1. 适合小学生python的书_小学生开始学Python,最接近AI的编程语言:安利一波Python书单...

    原标题:小学生开始学Python,最接近AI的编程语言:安利一波Python书单 AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于 ...

  2. python设计思路怎么写_初中信息技术 初识Python教学设计

    案例名称 神秘的蟒蛇-初识 Python 科目 信息技术 教学对象 八年级 设计者 叶新苗 课时 1 课时 所用教材 湖北教育出版社 一.教材内容分析 <初识 Python > 是鄂教版教 ...

  3. python编程思维导图_用来梳理 Python 编程核心知识15张思维导图

    原标题:用来梳理 Python 编程核心知识15张思维导图 小编这次在逛论坛的时候,无意中发现了一份python的武功秘籍,也就是一份思维导图,堪称业界经典! 思维导图可以有力地激发你的联想,通过一个 ...

  4. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

  5. python初学者编程指南源码_如何系统地自学 Python?

    是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓? 幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间 ...

  6. python越学越糊涂_你越努力,编程水平越差!这样学 Python ,更容易成为高手!...

    原标题:你越努力,编程水平越差!这样学 Python ,更容易成为高手! 从事 Python 这些年中,我见过很多 Python 教程和书籍,他们大都这样讲 : 先介绍 Python 的基本语法规则. ...

  7. python装饰器和异常处理_装饰器异常处理-面向对象编程-Python教程自动化开发_Python视频教程...

    课程目标:使学员掌握python基础教程知识,能够开发常用的PYTHON脚本 课程特色:实战,细致,生动,深入浅出 适用人群:适合PYTHON初学者 课程详情:该Python视频教程从0基础开始讲解P ...

  8. python计时器程序设计总框图_【怎么用python编写计时器?这个编程的方法你一定不要错过】- 环球网校...

    [摘要]现在学习python的人都在思考,怎么用python编写计时器?这个编程的方法你一定不要错过,环球网校小编建议大家可以试着自己编写功能性代码,毕竟实践出真知,所以你一定要知道怎么用python ...

  9. 简述python程序的基本构成_(一)Python入门-2编程基本概念:01程序的构成

    一:Python程序的构成 Python程序由模块组成.一个模块对应 一个python源文件,一般后缀名是:.py. 模块由语句组成.运行 Python 程序时,按照模块中语句的顺序依次执行. 语句是 ...

最新文章

  1. linux文本分析利器awk
  2. Quartz-JobListener解读
  3. vue.js 2.0实现的简单分页
  4. ML:MLOps系列讲解之《MLOps Stack Canvas堆栈画布之MLOps Stack CanvasCRISP-ML(Q)》解读
  5. Java黑皮书课后题第2章:2.9(物理:加速度)平均加速度定义为速度的变化量除以这个变化所用的时间,编写程序,提示用户输入以米/秒为单位的起始速度v0,以米/秒为单位的终止速度v1,显示平均加速度
  6. Gitee ssh 公钥配置好后,仍然 permission denied 的排查过程及解决方法
  7. python -- 计算 平方、乘方、平方根_从零开始学习PYTHON3讲义(二)把Python当做计算器...
  8. 华为软件机试测试题C语言,华为软件测试面试经验
  9. Web前端开发规范文档(转)
  10. Android UI学习之SeekBar
  11. Android人脸支付功能,人脸支付是未来吗?盘点安卓人脸支付手机,小米看后很尴尬…...
  12. Sentinel系统自适应限流【原理源码】
  13. html5 undefined,JS中typeof() !== undefined'是什么意思
  14. Android车载开发基础学习——蓝牙通信是如何实现的?
  15. MATLAB坐标轴(gca)的简单应用---MATLAB学习
  16. UserWarning: Glyph 20809 (\N{CJK UNIFIED IDEOGRAPH-5149}) missing from current font解决方法
  17. 笔记本电脑安装 OMV 关闭屏幕自动休眠的问题
  18. Docker拉取splash镜像失败
  19. 计算机模拟虚拟筛选操作流程
  20. JSX语法学习(一)

热门文章

  1. ostream作为函数返回值_Go语言入门必知教程-函数
  2. 【LeetCode】0395.至少有K个重复字符的最长子串
  3. MySQL范围查找时,索引失效问题探究
  4. 使用指定的Action,Category调用系统Activity
  5. 映射文件xxx.hbm.xml下的各元素结构
  6. 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome
  7. 网络编程应用:基于TCP协议【实现一个聊天程序】
  8. java责任链模式做优惠_Java设计模式菜鸟系列(十八)责任链模式建模与实现
  9. python语音识别播放音乐_使用python语音识别播放和流式转录音频
  10. sqlyog要先安装mysql_MySQL和SQLyog的配置-安装及遇到的问题