【宝藏系列】20个常用的Python技巧

【宝藏系列】20个常用的Python技巧


在这里插入图片描述


文章目录

    • 【宝藏系列】20个常用的Python技巧
    • 🍉文末推荐【Python之光】


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

1.字符串反转
使用Python切片反转字符串:

# Reversing a string using slicingmy_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 repetitionsmy_string = "abcd"
my_list = [1,2,3]print(my_string*n)
# abcdabcdabcdprint(my_list*n)
# [1,2,3,1,2,3,1,2,3]

5.列表生成

# Multiplying each element in a list by 2original_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 = 2a, b = b, aprint(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 Countermy_list = ['a','a','b','b','b','c','d','d','d','d','d']
count = Counter(my_list) # defining a counter objectprint(count) # Of all elements
# Counter({'d': 5, 'b': 3, 'a': 2, 'c': 1})print(count['b']) # of individual element
# 3print(count.most_common(1)) # most frequent element
# [('d', 5)]

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

from collections import Counterstr_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,0try: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 sysnum = 21print(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 timestart_time = time.time()
# Code to check follows
for i in range(10**5):a, b = 1,2c = 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 randommy_list = ['a', 'b', 'c', 'd', 'e']
num_samples = 2samples = 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 uniqueunique([1,1,2,3])
# List has duplicates

🍉文末推荐【Python之光】


🎃书籍介绍:
👉本期为大家带来的是机械工业出版社的《Python之光:Python编程入门与实战》
作为一种极其流行的编程语言,Python已经成为了当今最为重要的生产力工具之一。无论小学生还是各行各业的从业人员,都开始学习Python编程。这种编程语言在许多领域中都有广泛的应用,因此Python编程已经成为了许多职业的必备能力或者加分项。

然而,在市面上的Python入门书籍中,存在着许多通病:如知识点堆砌、杂乱无章、学习曲线陡峭、案例过于炫技等问题,这让许多新入门的朋友感到无从下手,不知道该如何选择一本好的入门书籍。

针对这个问题,我向大家推荐《Python之光》这本书,它以通俗易懂的方式,帮助读者快速掌握Python语言的最新特性、最新编程方法和最佳实践。

通过学习这本书,读者将具备项目实战能力,能够运用Python解决实际的工作问题。与其他的入门书籍不同的是,《Python之光》不仅仅是简单的知识堆积,而是从总到分,从原理到细节,从理论到实践,按照读者的学习心理层层递进。

同时,该书的应用案例也非常有代表性,包括数据科学(数据处理、数据分析、数据可视化)、办公自动化(Word、Excel的操作)、图形及界面、Web开发等领域,并且附有详细的代码讲解。

《Python之光》将重新定义Python的学习方式,帮助读者更好地应用Python进入实际工作中。
在这里插入图片描述

🤩本书亮点:
➡️零基础,尽量不使用专业词汇,不需要任何背景知识;
➡️语言通俗易懂,讲解深入浅出,内容详略得当;
➡️代码简洁,变量命名尽量使用简单单词;
➡️知识全面,讲解精练,涵盖最新的语言特性;
➡️知识结构设计合理,学习曲线平滑;
➡️面向应用,讲解必备的第三方库,配有经典、实用的案例。
另外,本书不堆砌知识,而是合理编排内容,从总到分,从原理到细节,从理论到实例,根据读者的学习心智模型层层递进。在应用部分,本书选取了数据科学(数据处理、数据分析、数据可视化)、办公自动化(对Word、Excel的操作)、图形及界面、Web开发等领域的案例,引导读者在实践中应用Python。这些案例非常有代表性,且均有详细的代码讲解。

💁‍♂️书籍配套:
《Python之光》提供海量免费配套资源,包括100个视频、1600个实战案例、源代码下载、高品质练习题、作者提供全程辅导、思维导图呈现全书知识精华、配套完整教学PPT,让学习过程直观易懂。
无论学习者的年龄、职业或行业,都能轻松入门Python编程。《Python之光》为初学者提供了极简的入门之路,是入门Python编程的不二之选。


在这里插入图片描述
适配版本:本书基于Python 3.11(本书代码最低适配版本Python3.10)


在这里插入图片描述

在这里插入图片描述
现在购买享7折优惠⬇️
《Python之光:Python编程入门与实战》

🧀参与形式:
👉关注➕点赞➕收藏➕评论,每人最多可以评论三条,随机抽取5位小伙伴免费送书一本🍿

🧀抽奖时间:
⏰2023-08-03 18:00

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot整合ELK+kafka采集日志

一、背景介绍 在分布式的项目中,各功能模块产生的日志比较分散,同时为满足性能要求,同一个微服务会集群化部署,当某一次业务报错后,如果不能确定产生的节点,那么只能逐个节点去查看日志文件;lo…

工业自动化数据485采集网关支持modbus协议

S475/S475E系列是一种功能丰富的设备,支持多种通信方式和输入输出功能。以下是对其功能的详细介绍: 通信方式: S475/S475E系列支持多种通信方式,包括短信、RS485、语音拨号、GPRS/3G/4G无线数据网络四种告警方式。这意味着用户可…

菜鸟编程-python-面向对象

目录 Python 面向对象 面向对象技术简介 创建类 self代表类的实例,而非类 创建实例对象

AXI协议之AXILite开发设计(二)

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 二、AXI-Lite关键代码分析 1、时钟与…

营销系统积分数据库设计

营销系统总体数据-业务功能模型 在当今日益竞争的市场中,如何提高客户留存率和忠诚度,已成为各大企业迫切需要解决的问题。而积分商城/系统作为一种新型的营销方式,受到青睐。 积分商城/系统是指将用户在使用产品或服务时产生的积分&#xf…

X - Transformer

回顾 Transformer 的发展 Transformer 最初是作为机器翻译的序列到序列模型提出的,而后来的研究表明,基于 Transformer 的预训练模型(PTM) 在各项任务中都有最优的表现。因此,Transformer 已成为 NLP 领域的首选架构&…

mac m1 触控栏TouchBar功能栏异常

电脑可能在高温下运行时间过长,导致TouchBar之前正常显示的调整屏幕亮度与调整声音等功能的按钮均丢失,然后看了一眼键盘设置,设置也是正常的,已勾选显示功能栏 下面请看 如何在MacBook Pro(macOS Monterey&#xff0…

基于Java+SpringBoot+vue前后端分离社区医院信息平台设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

Java实现微信支付

1.引入依赖 <dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-java</artifactId><version>0.2.10</version> </dependency>2.创建预支付订单 import com.wechat.pay.java.core.Config; imp…

STP生成树协议(第二十一课)

STP生成树协议(第二十一课) STP-生成树协议 1、为什么需要STP协议 1)局域网中容易出现的问题:单点故障和单链路故障,即:当某一条链路故障或某一台设备故障导致大面积主机网络中断 2)如果预防单点故障和单链路故障: 增加冗余/备份设备:预防单点故障 增加冗余/备份…

【C++】智能指针

文章目录 1. 为什么需要智能指针&#xff1f;2. 智能指针的使用智能指针的常见问题1.使用对象的生命周期去控制资源2. 像指针一样使用3. 拷贝问题auto_ptr ——管理权转移unique_ptr ——防拷贝C98版本C11版本 shared_ptr (根本解决拷贝问题)赋值代码实现 weak_ptr —— 循环引…

RocketMQ教程-(4)-领域模型-消费者(Consumer)

本文介绍 Apache RocketMQ 中消费者&#xff08;Consumer&#xff09;的定义、模型关系、内部属性、行为约束、版本兼容性及使用建议。 定义​ 消费者是 Apache RocketMQ 中用来接收并处理消息的运行实体。 消费者通常被集成在业务系统中&#xff0c;从 Apache RocketMQ 服务…

【JVM】详解对象的创建过程

文章目录 1、创建对像的几种方式1、new关键字2、反射3、clone4、反序列化 2、创建过程步骤 1、检查类是否已经被加载步骤 2、 为对象分配内存空间1、指针碰撞针对指针碰撞线程不安全&#xff0c;有两种方案&#xff1a; 2、空闲列表选择哪种分配方式 步骤3、将内存空间初始化为…

如何在armv6 armv7 armv8(aarch64)嵌入式板子上面安装nginx服务器,支持H265码流

如何在armv6 armv6 armv8 aarch64 嵌入式板子上面安装nginx服务器支持推送H265的视频流 开始吧 一&#xff0c;准备工作二&#xff0c;configure时遇到的出错问题1、checking for C compiler … found but is not working2&#xff0c;error: can not detect int size3&#xf…

【博客682】k8s apiserver bookmarks机制以更高效检测变更

k8s apiserver bookmarks机制以更高效检测变更 list-watch背景&#xff1a; List-Watch 是kubernetes中server和client通信的最核心的机制&#xff0c; 比如说api-server监听etcd&#xff0c; kubelet监听api-server&#xff0c; scheduler监听api-server等等&#xff0c;其实…

Jmeter场景设置与监听

Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元&#xff0c;场景设计源自于用户真实操作。 场景设计: 场景设计是根据收集分析用户的实际操作而定义的Jmeter脚本的执行策略。 性能测试中涉及的基本场景有两种&#xff0c;即单一业务场景和混合业务场景…

链表是否有环、环长度、环起点

问题引入 如何检测一个链表是否有环&#xff0c;如果有&#xff0c;那么如何确定环的长度及起点。 引自博客&#xff1a;上述问题是一个经典问题&#xff0c;经常会在面试中被问到。我之前在杭州一家网络公司的电话面试中就很不巧的问到&#xff0c;当时是第一次遇到那个问题&…

RocketMQ集群4.9.2升级4.9.6版本

本文主要记录生产环境短暂停机升级RocketMQ版本的过程 一、整体思路 1.将生产环境MQ4.9.2集群同步到测试环境&#xff0c;并启动&#xff0c;确保正常运行。 2.参照4.9.2配置4.9.6集群 3.停掉4.9.2集群&#xff0c;启动4.9.6集群&#xff0c;测试确保正常运行。 4.停掉4.9.6集…

JSON格式Python,Java,PHP等封装获取淘宝商品快递费用数据API方法

淘宝是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝天猫商品详情快递费用数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝天猫商城的网页来获取商品详情快递费用。以下是两种常用方法的介绍&a…

leetcode132. 分割回文串 II(java)

分割回文串 II 分割回文串 II动态规划 回文字符串 分割回文串 II 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是回文。 返回符合要求的 最少分割次数 。 示例 1&#xff1a; 输入&#xff1a;s “aab” 输出&#xff1a;1 解释&#xff1a;…