人生苦短:Python里的17个“超赞操作
人生苦短,我选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倒转。
方法三:第三种是通过倒转数据类型和切片倒转整数。

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可以存在重复key值,print({**d1, **d2})。
方法二:在内存中创建两个列表,再创建第三个列表,拷贝完成后,创建新的dict,删除掉前三个列表。
方法三:d1.update()。

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

17. 从list中删除重复项
方法一:把list转成set,去除重复项,再转回list。

方法二:调用collections里的OrderedDict,和set差不多。
欢迎评论转发谢谢
人生苦短:Python里的17个“超赞操作的更多相关文章
- Python里的装饰器
装饰器 装饰器是干什么用的? 装饰器可以在不修改某个函数的情况下,给函数添加功能. 形象点来说,从前有一个王叔叔,他一个人住在家里,每天打扫家,看书.于是定义如下一个函数: def uncle_wan ...
- 分享29个超赞的响应式Web设计
原文自:http://www.csdn.net/article/2013-01-16/2813678-responsive-design-websites 最近几年,响应式Web设计不断印入人们眼帘, ...
- 不容错过的超赞项目管理PPT
不容错过的超赞项目管理PPT(转载) 大公司的一个好处,是各个领域都有牛人,可以为你提供经验分享交流.腾讯庞大的培训体系更是保证了:如果你想学点什么东西,你总可以学到.腾讯内部资源30页PPT曝光 — ...
- 海量的超赞 Linux 软件 (转载)
海量的超赞 Linux 软件 作者: VoLuong 译者: LCTT Mo | 2016-08-24 16:01 评论: 27 收藏: 38 这个仓库收集了对任何用户/开发者都超赞的 Linux ...
- 《手把手教你》系列进阶篇之4-python+ selenium自动化测试 - python几种超神操作你都知道吗?(详细教程)
1. 简介 今天分享和讲解的超神操作,对于菜鸟来说是超神的操作,对于大佬来说也就是几个简单方法的封装和调用.这里讲解和分享这部分主要是为了培养小伙伴们和童鞋们的面向对象的开发思维,对比这样做的好处让你 ...
- Python与Javascript相互调用超详细讲解(2022年1月最新)(三)基本原理Part 3 - 通过C/C++联通
目录 TL; DR python调javascript javascript调python 原理 基于Node.js的javascript调用python 从Node调用python函数 V8 嵌入P ...
- Pace.js – 超赞的页面加载进度自动指示和 Ajax 导航效果
在页面中引入 Pace.js 和您所选择主题的 CSS 文件,就可以让你的页面拥有漂亮的加载进度和 Ajax 导航效果.不需要挂接到任何代码,自动检测进展.您可以选择颜色和多种效果,有简约,闪光灯, ...
- 超赞的CSS3进度条 可以随进度显示不同颜色
原文:超赞的CSS3进度条 可以随进度显示不同颜色 现在的WEB已经不是以前的WEB了,传输更大的数据量,有着更加复杂的计算,这就需要利用进度条来提高用户体验,必要时可以让用户耐心等待,不至于因操作卡 ...
- aos.js超赞页面滚动元素动画jQuery动画库
插件描述:aos.js 是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页面滚动时提供28种不同的元素动画效果,以及多种easing效果.在页面往回滚动时,元素会恢复到原来的状态 ...
随机推荐
- Linux下chkconfig命令介绍
一.引论 chkconfig命令检查.设置系统的各种服务.这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务, 其中包括各类常驻服务.谨记chkco ...
- as3.0画直线
import flash.display.Shape; import flash.events.MouseEvent; import flash.geom.Point; var line:Shape; ...
- 禁止 pdf 下载、打印的方法
https://blog.csdn.net/For_GG/article/details/78616063 https://blog.csdn.net/xiangcns/article/details ...
- 536. Construct Binary Tree from String 从括号字符串中构建二叉树
[抄题]: You need to construct a binary tree from a string consisting of parenthesis and integers. The ...
- Java 后台验证的工具类
Java 后台验证的工具类 public class ValidationUtil { //手机号 public static String mobile = "^( ...
- Java18-java语法基础——集合框架
Java18-java语法基础——集合框架 一.什么是集合框架 1.集合框架:是为表示和操作集合而规定的一种统一的.标准的体系结构. 2.任何集合框架都包含三大块内容:对外的接口.接口的实现和对集合运 ...
- 解决 ora-28001 密码过期的处理办法
转载自:https://blog.csdn.net/pengyouchuan/article/details/12905623 操作步骤: $sqlplus / as sysdba ALTER PRO ...
- 如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课
如何自行搭建一个威胁感知大脑 SIEM?| 硬创公开课 本文作者:谢幺 2017-03-10 10:09 专题:硬创公开课 导语:十年安全产品经验的百度安全专家兜哥,手把手教你用开源项目搭建SIEM安 ...
- Eclipse Python 开发环境搭建 pydev 插件
已安装: python 3.6 JDK Eclispe 在 Eclipse 中安装 pydev Pydev 的下载网址 http://www.pydev.org/download.html 安装完成后 ...
- 分布式协议学习笔记(一) Raft 选举
Raft官网 官方可视化动画1 官方可视化动画2 论文中文翻译 论文英文地址 感觉作为paxos的升级精简版 Raft在设计之初就以容易理解为目标 看完资料 脑海里都有了大概的轮廓. 有了这些详细的资 ...