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 在字符串中查找唯一元素
下面代码可用于查找字符串中所有的唯一元素。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
str1="aabbccccdddd"
set1=set(str1)
new_str=''.join(set1)
print(new_str)
4 重复打印字符串或列表
下面的代码中,对字符串或列表使用(*)。把字符串或列表复制多次。
i=4
str1="abcd"
list1=[1,2]
print(str1*i)
# abcdabcdabcdabcd
print(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 交换变量
不使用另一个变量,实现变量交换。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
x=1
y=2
x,y=y,x
print(x) # 2
print(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 中判断起来非常简单。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
str1="qqaabb"
if str1==str1[::-1]:print("回文")
else:print("不是")# 不是
10 列表中的元素统计
使用 Python Counter 类。Python 计数器跟踪容器中每个元素的频数, Counter()返回一个字典,元素作为键,频数作为值。
另外使用 most_common()
函数来获取列表中的 出现次数最多的元素。
from collections import Counter
list1=['a','b','a','c','c','c']
count=Counter(list1)
print(count)
print(count['b'])
print(count.most_common(1))
11 判断两个字符串是否为异序词
异序词 是通过重新排列不同单词或短语的字母而形成的单词或短语。 如果两个字符串的 Counter 对象相等,那么它们就是 相同字母异序词 对。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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,0
try: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 获取对象的内存使用信息
下面脚本可用于检查对象的内存使用信息。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import sys
num=21
print(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 time
s_time=time.time()
a,b=1,2
c=a+b
e_time=time.time()
time_taken_in_micro=(e_time-stime)*(10**6)
print("程序运行的毫秒:{0} ms".format(time_taken_in_micro))
17 展开列表清单
有时不知道列表的嵌套深度,并且只想把所有元素放在一个普通列表中。 可以通下面的方法得到数据:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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 random
list1=['a','b','c','d','e']
ns=2
samples=random.sample(list1,ns)
print(samples)
# ['a','c']
或者使用secrets库生成随机样本进行, 下面代码仅适用于 Python 3.x。
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import secrets
s_rand=secrets.SystemRanom()
list1=['a','b','c','d','e']
ns=2
samples=s_rand.sample(list1,ns)
print(samples)
# ['c','d']
19 数字列表化
下面代码将整数转换为数字列表。
nums=123456
# 使用map
digit_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二十个小技巧相关推荐
- 分享Python 的十个小技巧
一. 列表.字典.集合.元组的使用 from random import randint, sample # 列表解析 data = [randint(-10, 10) for _ in xrange ...
- 2021-01-20 Python编程特殊小技巧汇集
Python编程特殊小技巧汇集 Python作为一种高级编辑语言,有很多使用的小技巧,分享一期. 1.变量值互换 a = 0b = 1a,b = b, a 2.连续赋值 a, b = 2, 1 3.自 ...
- Oracle 查询的十个小技巧
Oracle数据库查询十个小技巧 数据查询,是数据库操作中最主要的功能之一:有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型.下面笔者不谈大道理,只是对其中对一些平时大家容易 ...
- delphi十个小技巧
delphi十个小技巧.... 1.判断一个字符串是否包含于另外一个字符串的方法 例如:if pos('ab','abcd')<>0 then messagedlg('ab是包含于abcd ...
- Python的一些小技巧小知识
Chapter 12. HOW-TO 本章内容记录Python的一些小技巧小知识.来源是网上摘录或自己学习所得. 如何判断操作系统类型 import sys print sys.platform pr ...
- android studio导出apk_Android 应用构建速度提升的十个小技巧
应用的构建速度会直接影响开发效率,本文将带您通过改造一个 Android 应用: "Google 追踪圣诞老人 (Google Santa Tracker)" 来为大家提供十个小技 ...
- shell脚本配置运行python程序,小技巧之 Linux 软连接的使用
shell脚本配置运行python程序,小技巧之 Linux 软连接的使用 实验室的多位博士会在同一台机器上跑python程序,主流的跑程序的方法有两种 使用sh脚本配置路径和程序 直接激活conda ...
- 十个模块_专栏 | ABAQUS Part模块的十个小技巧
作者介绍 星辰_北极星 2012年开始从事Abaqus仿真相关工作,服务大小课题逾百项; 主要仿真领域:石油工程.岩土工程和金属加工工艺: 重点研究方向:ABAQUS GUI二次开发.固体力学.断裂以 ...
- Oracle数据库查询十个小技巧
数据查询,是数据库操作中最主要的功能之一:有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型.下面笔者不谈大道理,只是对其中对一些平时大家容易忽略的查询小技巧做一些总结.或许大 ...
最新文章
- JPA-CascadeType四个属性的讲解
- [PHP] 项目实践中使用的IOC容器思想
- mysql+磁盘i+o+优化_浅析MySQL数据库磁盘I/O调整优化 | 学步园
- 神州数码DCWS学习日志
- 级联删除相关记录在哪_kube-apiserver审计日志记录和采集
- opencv mat与cvmat, iplimage转换
- https的安全密钥
- android apk很大,从Android Studio生成的Apk文件太大
- 虚拟机监视器(VMM)
- Kafka 概念、单机搭建与使用
- matlab dfe 仿真,Matlab Simulink
- 青海出游全年时间表,你要收藏哟!
- Java视频修改分辨率(附代码) | Java工具类
- 库卡工业机器人负载曲线图_库卡(kuka)机械臂KR210结构图解析!!!
- 最新长三角shp底图(两省一市+安徽)
- mysql添加用户和密码
- vue项目加入百度统计代码-统计网站浏览数据
- mov和mp4格式哪个好_在线视频格式转换器哪个好?求一个能转换多种格式的工具...
- 网络安全——通用渗透测试框架
- C语言开发的拼图游戏
热门文章
- tar 相关知识软硬连接
- java学习笔记--java中的基本数组[5]
- Eclipse 3.7 安装Maven插件时报错:requires 'bundle org.slf4j.api 1.6.2' but it could not be found...
- asp.net的控件视图状态
- 寻找听过我讲座的大学生
- matlab 并联机械臂_MATLAB robot toolbox 机械臂轨迹规划
- html文件执行顺序,网页的加载和执行顺序?
- 【技术好文转载】未来技术前瞻
- 【PP生产订单】入门介绍(十二)
- LSMW、BDC、CATT 区别