Python:值得学习的二十个技巧
本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间。 在平常编程过程中,以下技巧大多非常有用。
1 字符串反转
使用切片反转字符串。
str1="qwert"rev_str1=str1[::-1]#输出# trewq
2 使首字母大写
将字符串转换为首字母大写。使用 title()方法完成的。
str1="this is a book"print(str1.title())# This Is A Book
3 在字符串中查找唯一元素
下面代码可用于查找字符串中所有的唯一元素。
str1="aabbccccdddd"set1=set(str1)new_str=''.join(set1)print(new_str)
4 重复打印字符串或列表
下面的代码中,对字符串或列表使用(*)。把字符串或列表复制多次。
i=4str1="abcd"list1=[1,2]print(str1*i)# abcdabcdabcdabcdprint(list1*i)# [1,2,1,2,1,2,1,2]
5 列表推导式
列表推导式为我们提供了一种在其他列表基础上创建列表的好方法。 下面代码 通过将旧列表的每个元素乘以 2 来创建新列表。
list1=[1,2,3]new_list1=[2*i for i in list1]# [2,4,6]
6 交换变量
不使用另一个变量,实现变量交换。
x=1y=2x,y=y,xprint(x) # 2print(y) # 1
7 将字符串拆分为子字符串列表
我们使用字符串类中的.split()方法将字符串拆分为子字符串列表,还可以将要分割的分隔符作为参数传递。
str1="This is a book"str2="test/ str 2"print(str1.split()) # ['This', 'is', 'a', 'book']print(str2.split('/')) # ['test', ' str 2']
8 将字符串列表组合成单个字符串
join()将作为参数传递的字符串列表组合为单个字符串。这种情况下,我们使用逗号分隔符将它们分开。
list_str=['This','is','a','book']print(','.join(list_str))# This,is,a,book
9 检查回文字符串
我们已经讨论过如何反转字符串,因此回文字符串在 Python 中判断起来非常简单。
str1="qqaabb"if str1==str1[::-1]:print("回文")else:print("不是")# 不是
10 列表中的元素统计
使用 Python Counter 类。Python 计数器跟踪容器中每个元素的频数, Counter()返回一个字典,元素作为键,频数作为值。
另外使用 most_common()函数来获取列表中的 出现次数最多的元素。
from collections import Counterlist1=['a','b','a','c','c','c']count=Counter(list1)print(count)print(count['b'])print(count.most_common(1))
11 判断两个字符串是否为异序词
异序词 是通过重新排列不同单词或短语的字母而形成的单词或短语。 如果两个字符串的 Counter 对象相等,那么它们就是 相同字母异序词 对。
s1,s2,s3="acbde","abced","abcda"c1,c2,c3=Counter(s1),Counter(s2),Counter(s3)if c1==c2:print('1和2是异序词')if c1==c3:print('1和3是异序词')
12 使用 try-except-else 块
try / except 是 Python 中的异常处理模块,添加 else 语句,会在 try 块中没有引发异常的情况下运行。
a,b=1,0try:print(a/b)# b为0的时候触发异常except ZeroDivisionError:print("除数为0")else:print("不存在异常")finally:print("此段总是会执行")
13 通过枚举获取索引 / 值对
可以使用下面的脚本,遍历列表中的值及其索引。
list1=['a','b','c','d','e']for idx,val in enumerate(list1):print('{0}:{1}'.format(idx,val))# 0:a# 1:b# 2:c# 3:d# 4:e
14 获取对象的内存使用信息
下面脚本可用于检查对象的内存使用信息。
import sysnum=21print(sys.getsizeof(num))
15 合并两个字典
在 Python 2 中,使用 update()合并两个字典,Python 3 变得更加简单。
下面脚本中,两个字典被合并。在相交的情况下,使用第二个字典中的值。
dic1={'app':9,'banana':6}dic2={'banana':4,'orange':8}com_dict={**dic1,**dic2}# {'apple':9,'banana':4,'orange':8}
16 计算代码执行所需的时间
下面代码使用库函数来计算执行代码所需的时间消耗多少毫秒。
import times_time=time.time()a,b=1,2c=a+be_time=time.time()time_taken_in_micro=(e_time-stime)*(10**6)print("程序运行的毫秒:{0} ms".format(time_taken_in_micro))
17 展开列表清单
有时不知道列表的嵌套深度,并且只想把所有元素放在一个普通列表中。 可以通下面的方法得到数据:
from iteration_utilities import deepflatten# 如果嵌套列表的深度只有1层def flatten(l):return [item for sublist in l for item in sublist]l=[[1,2,3],[3]]print(flatten(l))# [1,2,3,3]# 如果不知道列表嵌套深度l=[[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]print(list(deepflatten(l,depth=3)))# [1,2,3,4,5,6,7,8,9,10]
18 从列表中随机取样
下面代码从给定列表中生成了 n 个随机样本。
import randomlist1=['a','b','c','d','e']ns=2samples=random.sample(list1,ns)print(samples)# ['a','c']
或者使用secrets库生成随机样本进行, 下面代码仅适用于 Python 3.x。
import secretss_rand=secrets.SystemRanom()list1=['a','b','c','d','e']ns=2samples=s_rand.sample(list1,ns)print(samples)# ['c','d']
19 数字列表化
下面代码将整数转换为数字列表。
nums=123456# 使用mapdigit_list=list(map(int,str(nums)))print(digit_list)# [1,2,3,4,5,6]# 使用列表表达式digit_list=[int(x) for x in str(nums)]print(digit_list)# [1,2,3,4,5,6]
20 唯一性 检查
下面的函数检查列表中的元素是否唯一。
def unique(l):if len(l)==len(set(l)):print("所有元素是唯一的")else:print("存在重复")unique([1,2,3,4])# 所有元素是唯一的unique([1,1,3,4])# 存在重复
想学习更多关于python的知识可以加我QQ:2955637827
Python:值得学习的二十个技巧的更多相关文章
- Python爬虫学习:二、爬虫的初步尝试
		
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
 - Python Django 学习 (二) 【Django 模型】
		
注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...
 - python进阶学习(二)
		
本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...
 - Python入门学习(二)
		
1 字典 1.1 字典的创建和访问 字典不同于前述的序列类型,它是一种映射类型.它的引入是为了简化定义索引值和元素值存在特定关系的定义和访问问题. 字典的定义形式为:字典变量名 = {key1:val ...
 - Python基础学习(二)
		
前一段时间学习了Python数据类型,语句和函数,目前书写python的新特性,继续练手!!!! 一.切片 之前我们从python的list 或者 tuple中取得元素都是这样写,显然不够灵活 lis ...
 - 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
		
本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...
 - webdriver(python)学习笔记二
		
自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...
 - Python基础学习篇章二
		
一. Python如何运行程序 1. 在交互模式下编写代码 最简单的运行Python程序的方法是在Python交互命令行中输入程序.当然有很多方法可以开始这样的命令行,比如IDE,系统终端.如果你已经 ...
 - python面向对象学习(二)基本语法
		
目录 1. dir内置函数 2. 定义简单的类(只包含方法) 2.1 定义只包含方法的类 2.2 创建对象 2.3 编写第一个面向对象程序 3. 方法中的self参数 3.1 案例改造 -- 给对象添 ...
 
随机推荐
- 到底为什么不要用SELECT *
			
SELECT * 无论工作还是面试,说到sql优化,比说的一个问题就是,代码中sql不要出现 SELECT *,之前一直也没有深入去研究研究,为什么,只是记住了,代码中注意了,但是就在今天逛某某论坛时 ...
 - Ubuntu16.04配置静态ip
			
1.安装好ubuntu16.04虚拟机之后,首先按照下图的步骤进行: 首先需要打开虚拟网络编辑器,点击VMnet8的虚拟网卡,如果没有这个网卡,只需在编辑虚拟机设置里面将网络适配器类型改为NAT模式, ...
 - 关于UILabel标签控件的使用小节
			
前段时间一直想停下来,总结一下近期在开发中遇到的一些问题顺便分享一下解决问题的思路和方法,无奈人生就像蒲公英,看似自由却身不由己.太多的时间和精力被占用在新项目的开发和之前项目的维护中,总之一句话外包 ...
 - 在腾讯云容器服务 TKE 中利用 HPA 实现业务的弹性伸缩
			
在 TKE 上利用 HPA 实现业务的弹性伸缩 概述 Kubernetes Pod 水平自动扩缩(Horizontal Pod Autoscaler,以下简称 HPA)可以基于 CPU 利用率.内存利 ...
 - 第9章 Python文件操作目录
			
第9章 Python文件操作 第9.1节 Python的文件打开函数open简介 第9.2节 Python的文件打开函数open详解 第9.3节 Python的文件行读取:readline 第9.4节 ...
 - [BJDCTF 2nd]简单注入
			
[BJDCTF 2nd]简单注入 hint.txt出现了内容. 大概意思和国赛一道题相同. username处注入\来转义单引号,password处使用sql语句整数型注入. 例如: 传入admin\ ...
 - 安装centos出现的问题
			
1.配置好之后,点击完成,如果出现"无法创建新虚拟机,无法打开配置文件,D:/... ,拒绝访问" 的错误时: 关闭虚拟机,重新以管理员身份打开.
 - 半夜删你代码队 Day4冲刺
			
一.每日站立式会议 1.站立式会议 成员 昨日完成工作 今日计划工作 遇到的困难 陈惠霖 做了新规划 开始双人合作 无 侯晓龙 写了第一个例子 开始双人合作 无 周楚池 准备合作 开始双人合作 无 胡 ...
 - 个人项目作业--WC的实现
			
GitHub项目地址 https://github.com/1721819634/WC 1.Word Count 项目要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数. ...
 - 利用神经网络算法的C#手写数字识别(二)
			
利用神经网络算法的C#手写数字识别(二) 本篇主要内容: 让项目编译通过,并能打开图片进行识别. 1. 从上一篇<利用神经网络算法的C#手写数字识别>中的源码地址下载源码与资源, ...