本文为大家介绍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二十个小技巧相关推荐

  1. 分享Python 的十个小技巧

    一. 列表.字典.集合.元组的使用 from random import randint, sample # 列表解析 data = [randint(-10, 10) for _ in xrange ...

  2. 2021-01-20 Python编程特殊小技巧汇集

    Python编程特殊小技巧汇集 Python作为一种高级编辑语言,有很多使用的小技巧,分享一期. 1.变量值互换 a = 0b = 1a,b = b, a 2.连续赋值 a, b = 2, 1 3.自 ...

  3. Oracle 查询的十个小技巧

    Oracle数据库查询十个小技巧 数据查询,是数据库操作中最主要的功能之一:有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型.下面笔者不谈大道理,只是对其中对一些平时大家容易 ...

  4. delphi十个小技巧

    delphi十个小技巧.... 1.判断一个字符串是否包含于另外一个字符串的方法 例如:if pos('ab','abcd')<>0 then messagedlg('ab是包含于abcd ...

  5. Python的一些小技巧小知识

    Chapter 12. HOW-TO 本章内容记录Python的一些小技巧小知识.来源是网上摘录或自己学习所得. 如何判断操作系统类型 import sys print sys.platform pr ...

  6. android studio导出apk_Android 应用构建速度提升的十个小技巧

    应用的构建速度会直接影响开发效率,本文将带您通过改造一个 Android 应用: "Google 追踪圣诞老人 (Google Santa Tracker)" 来为大家提供十个小技 ...

  7. shell脚本配置运行python程序,小技巧之 Linux 软连接的使用

    shell脚本配置运行python程序,小技巧之 Linux 软连接的使用 实验室的多位博士会在同一台机器上跑python程序,主流的跑程序的方法有两种 使用sh脚本配置路径和程序 直接激活conda ...

  8. 十个模块_专栏 | ABAQUS Part模块的十个小技巧

    作者介绍 星辰_北极星 2012年开始从事Abaqus仿真相关工作,服务大小课题逾百项; 主要仿真领域:石油工程.岩土工程和金属加工工艺: 重点研究方向:ABAQUS GUI二次开发.固体力学.断裂以 ...

  9. Oracle数据库查询十个小技巧

    数据查询,是数据库操作中最主要的功能之一:有时候数据库查询性能的好坏,直接关系到数据库的运行效率,关系到数据库的选型.下面笔者不谈大道理,只是对其中对一些平时大家容易忽略的查询小技巧做一些总结.或许大 ...

最新文章

  1. JPA-CascadeType四个属性的讲解
  2. [PHP] 项目实践中使用的IOC容器思想
  3. mysql+磁盘i+o+优化_浅析MySQL数据库磁盘I/O调整优化 | 学步园
  4. 神州数码DCWS学习日志
  5. 级联删除相关记录在哪_kube-apiserver审计日志记录和采集
  6. opencv mat与cvmat, iplimage转换
  7. https的安全密钥
  8. android apk很大,从Android Studio生成的Apk文件太大
  9. 虚拟机监视器(VMM)
  10. Kafka 概念、单机搭建与使用
  11. matlab dfe 仿真,Matlab Simulink
  12. 青海出游全年时间表,你要收藏哟!
  13. Java视频修改分辨率(附代码) | Java工具类
  14. 库卡工业机器人负载曲线图_库卡(kuka)机械臂KR210结构图解析!!!
  15. 最新长三角shp底图(两省一市+安徽)
  16. mysql添加用户和密码
  17. vue项目加入百度统计代码-统计网站浏览数据
  18. mov和mp4格式哪个好_在线视频格式转换器哪个好?求一个能转换多种格式的工具...
  19. 网络安全——通用渗透测试框架
  20. C语言开发的拼图游戏

热门文章

  1. tar 相关知识软硬连接
  2. java学习笔记--java中的基本数组[5]
  3. Eclipse 3.7 安装Maven插件时报错:requires 'bundle org.slf4j.api 1.6.2' but it could not be found...
  4. asp.net的控件视图状态
  5. 寻找听过我讲座的大学生
  6. matlab 并联机械臂_MATLAB robot toolbox 机械臂轨迹规划
  7. html文件执行顺序,网页的加载和执行顺序?
  8. 【技术好文转载】未来技术前瞻
  9. 【PP生产订单】入门介绍(十二)
  10. LSMW、BDC、CATT 区别