0

0

五个节约生命的Python小技巧

WBOY

WBOY

发布时间:2023-04-12 21:19:09

|

1529人浏览过

|

来源于51CTO.COM

转载

五个节约生命的Python小技巧

Python是一种强大且易上手的语言,语法简洁优雅,不像Java那么繁琐废话,并且有一些特殊的函数或语法可以让代码变得更加简短精悍。

根据笔者经验,下面介绍常用的5个Python小技巧:

  • 字符串操作
  • 列表推导
  • lambda 及 map() 函数
  • if、elif和else单行表达式
  • zip()函数

五个节约生命的Python小技巧

1.字符串操作 (https://jq../?_wv=1027&k=UEbz4NcQ)

Python善于用数学运算符(如+和*)对字符串进行操作: - + 拼接字符串 - * 重复字符串

my_string = "Hi Python..!"print(my_string * 2)#Hi Python..!Hi Python..!print(my_string + " I love Python" * 2)#Hi Python..! I love Python I love Python

也可以用切片操作[::-1]轻松反转一个字符串,并且不限于字符串(如列表翻转)!

my_string = "Hi Python..!"print(my_string[::-1])# !..nohtyP iHmy_list = [1,2,3,4,5]
print(my_list[::-1])# [5, 4, 3, 2, 1]

下面是对一个单词列表进行了反转拼接成字符串:

word_list = ["awesome", "is", "this"]print(' '.join(word_list[::-1]) + '!')
#this is awesome!

用.join()方法,‘’(空格)连接反转列表中的所有单词,并加上一个惊叹号!。

2.列表推导 (https://jq../?_wv=1027&k=UEbz4NcQ)

五个节约生命的Python小技巧

列表推导,一个可以改变你世界观的技巧!这是一个非常强大、直观和可读的方法,可以对列表进行快速操作。另外,搜索公众号顶级Python后台回复“物联网”,获取一份惊喜礼包。

假设,有一个随机的函数,返回一个数字的平方并加上5:

def stupid_func(x):
 return x**2 + 5

现在,想把函数stupid_func()应用于列表中的所有奇数,如果不用列表推导,笨办法如下:

def stupid_func(x):
 return x**2 + 5my_list = [1, 2, 3, 4, 5]
new_list = []for x in my_list: if x % 2 != 0:
new_list.append(stupid_func(x))
print(new_list)#[6, 14, 30]

如果用列表推导,代码瞬间变的优雅:

def stupid_func(x):
 return x**2 + 5my_list = [1, 2, 3, 4, 5]
print([stupid_func(x) for x in my_list if x % 2 != 0])#[6, 14, 30]

列表推导的语法:[ expression for item in list ],如果觉得不够花哨,还可以加上一个判断条件,比如上面的"奇数"条件: [expression for item in list if conditional]。本质上如下代码的功能:

for item in list:
if conditional:
expression

Very Cool!。不过还可以更进一步,直接省去stupid_func()函数:

my_list = [1, 2, 3, 4, 5]print([x ** 2 + 5 for x in my_list if x % 2 != 0])#[6, 14, 30]

3.Lambda & Map函数 (https://jq../?_wv=1027&k=UEbz4NcQ)

Lambda看上去有点点奇怪,但奇怪的东西一般功能都很强大,一旦你掌握就很直观,省去大量废话代码。

基本上,Lambda函数是一个小型的匿名函数。为什么是匿名的?

因为Lambda最常被用来执行的简单操作,但不需要像def my_function()那样正儿八经,所以Lambda又名吊儿郎当函数(瞎编的,忽略忽略)。

Looka
Looka

AI辅助Logo和品牌设计工具

下载

改进上面的例子:def stupid_func(x)可以用一行Lambda函数来代替:

stupid_func = (lambda x : x ** 2 + 5)
print([stupid_func(1), stupid_func(3), stupid_func(5)])#[6, 14, 30]

那么为什么要使用这种奇怪的语法呢?当想进行一些简单操作而不需要定义实际函数时,这就变得很有用。

以一个数字列表为例。假设对列表进行排序?一种方法是使用 sorted() 方法:

my_list = [2, 1, 0, -1, -2]
print(sorted(my_list))#[-2, -1, 0, 1, 2]

sorted()函数可以完成排序,但假设想按每个数的平方进行排序呢?此时可用lambda函数来定义排序键key,这也是sorted()方法用来决定如何排序的:

my_list = [2, 1, 0, -1, -2]
print(sorted(my_list, key = lambda x : x ** 2))#[0, -1, 1, -2, 2]

Map函数

map是python内置函数,会根据提供的函数对指定的序列做映射。假设有一个列表,想把列表中的每个元素与另一个列表中的相应元素相乘,如何做到这一点?使用lambda函数和map!

print(list(map(lambda x, y : x * y, [1, 2, 3], [4, 5, 6])))
#[4, 10, 18]

与下面这种常规废话代码,简单而优雅:

x, y = [1, 2, 3], [4, 5, 6]
z = []for i in range(len(x)):
 z.append(x[i] * y[i])print(z)
#[4, 10, 18]

五个节约生命的Python小技巧

4.if-else 单行表达 (https://jq.com/?_wv=1027&k=UEbz4NcQ)

在你的代码的某个地方,可能会有这样废话的条件语句:

x = int(input())if x >= 10:print("Horse")
elif 1 < x < 10:print("Duck")else:print("Baguette")

当运行程序时,提示从input()函数中输入一个信息,比如输入5,得到Duck。但其实也可以一行代码完成整个事情:

print("Horse" if x >= 10 else "Duck" if 1 < x < 10 else "Baguette")

一行代码简单直接! 翻阅你的旧代码,会发现很多判断都可以规约为一个if-else单行表达式。

五个节约生命的Python小技巧

5.zip()函数 (https://jq..com/?_wv=1027&k=UEbz4NcQ)

还记得map()函数部分两个列表元素按位相乘吗?

zip()使之更加简单。假设有两个列表,一个包含名,一个包含姓,如何有序地合并它们呢?使用zip()!

first_names = ["Peter", "Christian", "Klaus"]
last_names = ["Jensen", "Smith", "Nistrup"]print([' '.join(x) for x in zip(first_names, last_names)])
#['Peter Jensen', 'Christian Smith', 'Klaus Nistrup']

上面列出的5个快速小技巧,希望对你有用。

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.5万人学习

SciPy 教程
SciPy 教程

共10课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号