【速度收藏】20个常用的Python技巧,太赞啦

2023-11-10

Python的可读性和简单性是其广受欢迎的两大原因,本文介绍20个常用的Python技巧来提高代码的可读性,并能帮助你节省大量时间,下面的技巧将在你的日常编码练习中非常实用。

1.字符串反转

使用Python切片反转字符串:

\# Reversing a string using slicing  
  
my\_string \= "ABCDE"  
reversed\_string \= my\_string\[::\-1\]  
  
print(reversed\_string)  
  
\# Output  
\# EDCBA

2.每个单词的第一个字母大写

使用title函数方法:

my\_string \= "my name is chaitanya baweja"  
  
\# using the title() function of string class  
new\_string \= my\_string.title()  
  
print(new\_string)  
  
\# Output  
\# My Name Is Chaitanya Baweja

3. 字符串查找唯一元素

使用集合的概念查找字符串的唯一元素:

my\_string \= "aavvccccddddeee"  
  
\# converting the string to a set  
temp\_set \= set(my\_string)  
  
\# stitching set into a string using join  
new\_string \= ''.join(temp\_set)  
  
print(new\_string)  
  
\# output  
\# cdvae

4.重复打印字符串和列表n次

你可以使用乘法符号(*)打印字符串或列表多次:

n \= 3 \# number of repetitions  
  
my\_string \= "abcd"  
my\_list \= \[1,2,3\]  
  
print(my\_string\*n)  
\# abcdabcdabcd  
  
print(my\_list\*n)  
\# \[1,2,3,1,2,3,1,2,3\]

5.列表生成

\# Multiplying each element in a list by 2  
  
original\_list \= \[1,2,3,4\]  
  
new\_list \= \[2\*x for x in original\_list\]  
  
print(new\_list)  
\# \[2,4,6,8\]

6.变量交换

a \= 1  
b \= 2  
  
a, b \= b, a  
  
print(a) \# 2  
print(b) \# 1

7.字符串拆分为子字符串列表

使用.split()函数:

string\_1 \= "My name is Chaitanya Baweja"  
string\_2 \= "sample/ string 2"  
  
\# default separator ' '  
print(string\_1.split())  
\# \['My', 'name', 'is', 'Chaitanya', 'Baweja'\]  
  
\# defining separator as '/'  
print(string\_2.split('/'))  
\# \['sample', ' string 2'\]

8.多个字符串组合为一个字符串

list\_of\_strings \= \['My', 'name', 'is', 'Chaitanya', 'Baweja'\]  
  
\# Using join with the comma separator  
print(','.join(list\_of\_strings))  
  
\# Output  
\# My,name,is,Chaitanya,Baweja

9.检测字符串是否为回文

my\_string \= "abcba"  
  
if my\_string \== my\_string\[::\-1\]:  
    print("palindrome")  
else:  
    print("not palindrome")  
  
\# Output  
\# palindrome

10. 统计列表中元素的次数

\# finding frequency of each element in a list  
from collections import Counter  
  
my\_list \= \['a','a','b','b','b','c','d','d','d','d','d'\]  
count \= Counter(my\_list) \# defining a counter object  
  
print(count) \# Of all elements  
\# Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1})  
  
print(count\['b'\]) \# of individual element  
\# 3  
  
print(count.most\_common(1)) \# most frequent element  
\# \[('d', 5)\]

11.判断两个字符串是否为Anagrams

Anagrams的含义为两个单词中,每个英文单词(不含大小写)出现的次数相同,使用Counter类判断两个字符串是否为Anagrams。

from collections import Counter  
  
str\_1, str\_2, str\_3 \= "acbde", "abced", "abcda"  
cnt\_1, cnt\_2, cnt\_3  \= Counter(str\_1), Counter(str\_2), Counter(str\_3)  
  
if cnt\_1 \== cnt\_2:  
    print('1 and 2 anagram')  
if cnt\_1 \== cnt\_3:  
    print('1 and 3 anagram')  
  
\# output  
\# 1 and 2 anagram

12. 使用try-except-else-block模块

except获取异常处理:

a, b \= 1,0  
  
try:  
    print(a/b)  
    \# exception raised when b is 0  
except ZeroDivisionError:  
    print("division by zero")  
else:  
    print("no exceptions raised")  
finally:  
    print("Run this always")  
  
\# output  
\# division by zero  
\# Run this always

13. 使用枚举函数得到key/value对

my\_list \= \['a', 'b', 'c', 'd', 'e'\]  
  
for index, value in enumerate(my\_list):  
    print('{0}: {1}'.format(index, value))  
  
\# 0: a  
\# 1: b  
\# 2: c  
\# 3: d  
\# 4: e

14.检查对象的内存使用情况

import sys  
  
num \= 21  
  
print(sys.getsizeof(num))  
  
\# In Python 2, 24  
\# In Python 3, 28

15.合并字典

dict\_1 \= {'apple': 9, 'banana': 6}  
dict\_2 \= {'banana': 4, 'orange': 8}  
  
combined\_dict \= {\*\*dict\_1, \*\*dict\_2}  
  
print(combined\_dict)  
\# Output  
\# {'apple': 9, 'banana': 4, 'orange': 8}

16.计算执行一段代码所花费的时间

使用time类计算运行一段代码所花费的时间:

import time  
  
start\_time \= time.time()  
\# Code to check follows  
for i in range(10\*\*5):  
    a, b \= 1,2  
    c \= a+ b  
\# Code to check ends  
end\_time \= time.time()  
time\_taken\_in\_micro \= (end\_time\- start\_time)\*(10\*\*6)  
  
print(time\_taken\_in\_micro)  
  
\# output  
\# 18770.217895507812

17. 列表展开

from iteration\_utilities import deepflatten  
  
\# if you only have one depth nested\_list, use this  
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\]  
  
\# if you don't know how deep the list is nested  
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. 列表采样

import random  
  
my\_list \= \['a', 'b', 'c', 'd', 'e'\]  
num\_samples \= 2  
  
samples \= random.sample(my\_list,num\_samples)  
print(samples)  
\# \[ 'a', 'e'\] this will have any 2 random values

19.数字化

将整数转化成数字列表:

num \= 123456  
  
\# using map  
list\_of\_digits \= list(map(int, str(num)))  
  
print(list\_of\_digits)  
\# \[1, 2, 3, 4, 5, 6\]  
  
\# using list comprehension  
list\_of\_digits \= \[int(x) for x in str(num)\]  
  
print(list\_of\_digits)  
\# \[1, 2, 3, 4, 5, 6\]

20.检查列表元素的唯一性

检查列表中每个元素是否为唯一的:

def unique(l):  
    if len(l)\==len(set(l)):  
        print("All elements are unique")  
    else:  
        print("List has duplicates")  
  
unique(\[1,2,3,4\])  
\# All elements are unique  
  
unique(\[1,1,2,3\])  
\# List has duplicates

最后这里免费分享给大家一份Python全套学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以加我微信一起来学习交流。

Python所有方向的学习路线图,清楚各个方向要学什么东西

100多节Python课程视频,涵盖必备基础、爬虫和数据分析

100多个Python实战案例,学习不再是只会理论

华为出品独家Python漫画教程,手机也能学习

历年互联网企业Python面试真题,复习时非常方便

上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以直接划到文末免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述
配套学习视频:
在这里插入图片描述

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以点击下方CSDN官方认证微信名片免费领取↓↓↓【保证100%免费

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【速度收藏】20个常用的Python技巧,太赞啦 的相关文章

  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • SpringBoot整合Shiro实现登录和注册功能

    首先 让我们介绍一下Shiro Shiro是一个非常流行的Java安全框架 它提供了身份验证 授权 加密和会话管理等安全功能 Shiro的一个重要特点是它的易用性和灵活性 它可以与各种Java框架 如Spring Spring Boot S
  • [NLP] transformers 使用指南

    严格意义上讲 transformers 并不是 PyTorch 的一部分 然而 transformers 与 PyTorch 或 TensorFlow 结合的太紧密了 而且可以把 transformers 看成是 PyTorch 或 Ten
  • 深度学习之数学基础(线性代数篇)

    2 1 标量 一个标量就是一个单独的数 一般用小写的的变量名称表示 2 2 向量 一个向量就是一列数 这些数是有序排列的 用过次序中的索引 我们可以确定每个单独的数 通常会赋予向量粗体的小写名称 当我们需要明确表示向量中的元素时 我们会将元
  • 【计算机网络】1.5——计算机网络的体系结构(网络分层模型)

    计算机网络的体系结构 概述 计算机网络的体系结构是计算机网络及其构建所应完成功能的精确定义 考题 不属于网络体系结构所描述的内容的是 A 网络的层次 B 每层使用的协议 C 协议的内部实现细节 D 每层必须完成的功能 这些功能的 实现细节
  • html + css实现点赞特效

    html
  • BUUCTF做题Upload-Labs记录pass-01~pass-10

    BUUCTF做题Upload Labs记录pass 01 pass 10 pass 01 前端验证后缀 传1 png 抓包改1 php 即可 蚁剑连 http your ip upload 1 php pass 02 验证content t
  • 前端部署项目到服务器

    1 通过xshell配置 1 1下载xshell 并安装 1 2配置root以及服务器地址 1 3配置nginx 路径设置为xxx xxx dist 1 4npm run build 将打包的dist文件放入配置路径下 1 5无法拖动文件处
  • 文本自动分类

    使用机器学习方法 做文档的自动分类 套路 1 根据每个文件 生成该文件的一个特征 2 根据特征 选择 分类器 进行文本分类 3 可选 根据 2 步结果 调整参数 特征等 示例 数据 搜狗文本分类语料库 精简版 分类器 朴素贝叶斯 编程语言
  • Windows防火墙配置(允许某个网段和部分IP访问某个端口)

    1 win R 2 gpedit msc 3 计算机配置 Windows设置 安全设置 IP安全策略 在本地计算机 4 创建IP安全策略 5 配置IP筛选器列表 筛选器操作 6 分配 https img2018 cnblogs com bl
  • Transformers使用教程

    模型参数下载 数据集查找 Transformers中文使用说明 Huggingface 超详细介绍 知乎 Hugging Face 的 Transformers 库快速入门 文档说明 Transformers 提供文本相关的预训练模型 Di
  • (一)linux系统安装——从0开始大数据开发实战:电影推荐系统(scala版)

    参考资源 厦大实验室博客http dblab xmu edu cn blog 大数据基础编程 实验和案例教程 林子雨 linux版本 ubuntu ubuntukylin 16 04 desktop amd64 https pan baid
  • OpenCV三维图像的创建和数据遍历

    创建一个如图所示的3 X 4 X 6 三维矩阵 include
  • 学习iot_小熊派IoT开发板系列教程正式发布——免费学习

    小宅按 小熊派开源社区针对小熊派IoT开发板首次规划了小熊派未来的系列教程 从基础到进阶的设计 可适应具有不同基础的开发者 通过该系列教程的学习 开发者能够轻松掌握IoT产品的开发 该系列教程包括单片机基础 LiteOS操作系统基础 通信外
  • [第五空间 2021]pklovecloud

    除了按部就班的根据代码来写序列化
  • 42 访问者模式(Visitor模式)详解

    行为型模式 模板方法 Template Method 模式 策略 Strategy 模式 命令 Command 模式 职责链 Chain of Responsibility 模式 状态 State 模式 观察者 Observer 模式 中介
  • stm32---基本定时器(TIM6,TIM7)

    STM32F1的定时器非常多 由两个基本定时器 TIM6 TIM7 4个通用定时器 TIM2 TIM5 和两个高级定时器 TIM TIM 组成 基本定时器的功能最为简单 类似于51单片机内定时器 通用定时器是在基本定时器的基础上扩展而来 增
  • dump文件分析工具_jvm系列:dump文件深度分析

    JVM dump java内存dump是jvm运行时内存的一份快照 利用它可以分析是否存在内存浪费 可以检查内存管理是否合理 当发生OOM的时候 可以找出问题的原因 那么dump文件的内容是什么样的呢 我们一步一步来 获取JVM dump文
  • super()

    super 关键字 关键字的理解 父类中定义了该方法 但是子类中重写了该方法 使用super来修饰这个方法 在调用的时候调用父类的方法 super关键字的使用 1 super理解为父类 2 super可以用来调用 属性方法和构造器 3 su
  • 【Maven】Maven slf4j-api 出现 NoClassDefFoundError:org/slf4j/event/LoggingEvent

    1 背景 程序偶然报错这个 然后我查找了一下 发现这个包是1 7 7版本的 然后我想知道那个版本加入了这个东东 于是去查了一下 可以发现 在1 7 14版本之前都没有和这个包 1 7 14之后就全都有了 换个版本就好了
  • 【速度收藏】20个常用的Python技巧,太赞啦

    Python的可读性和简单性是其广受欢迎的两大原因 本文介绍20个常用的Python技巧来提高代码的可读性 并能帮助你节省大量时间 下面的技巧将在你的日常编码练习中非常实用 1 字符串反转 使用Python切片反转字符串 Reversing