Python二十个小技巧

枫铃3年前 (2021-09-30)Python217

本文为大家介绍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同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。