5个节约生命的python小技巧

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

本文给大家介绍常用的5个python小技巧:

  • 字符串操作
  • 列表推导
  • lambda 及 map() 函数
  • if、elif和else单行表达式
  • zip()函数
    5个节约生命的python小技巧

1、字符串操作

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

# Python学习交流1裙 815624229  (1群满加2群)
# Python学习交流2裙 279199867  ###
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 iH
my_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()方法,‘’(空格)连接反转列表中的所有单词,并加上一个惊叹号!

5个节约生命的python小技巧

2、列表推导

5个节约生命的python小技巧

列表推导,一个可以改变你世界观的技巧!这是一个非常强大、直观和可读的方法,可以对列表进行快速操作。

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

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

 

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

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

my_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 + 5

my_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]

 

5个节约生命的python小技巧

3、Lambda & Map函数

Lambda

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

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

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

改进上面的例子: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]

 

5个节约生命的python小技巧

4、if-else 单行表达

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

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单行表达式。

5个节约生命的python小技巧

5、zip()函数

还记得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个快速小技巧,希望对你有用。

如果觉得还可以,大家给点个免费的关注+收藏吧

感谢 !!!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:5个节约生命的python小技巧 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • 重温Python基础——if语句

    哈喽兄弟们,本节咱们来复习一下Python基础入门中的if语句。 编程中经常需要检查一系列条件,并据此决定采取什么措施。在python中,if语句能检测你的程序的当前状态,并据此采取什么措施。 if语句功能 可以作为条件测试检查是否相等,检查是不相等数值比较,检查多个条件等!下面来一些简单的示例: a=10 b=11 c=21 if a==b: print(…

    Python开发 2023年4月2日
    00
  • python 装饰器

    一、我们在python语言中  常用@classmethod、@staticmethod这个装饰器,装饰器的作用简单来讲就是我们在很多地方可能都会用到一下相同的功能,这时我们会有两种想法。 1. 将这部分相同的功能封装成函数,然后在使用这个功能的时候程序中调用这个函数。 2. 将这部分相同的功能封装成装饰器,然后在使用这个功能的时候在需要处理的方法前加上对应…

    Python开发 2023年4月2日
    00
  • 利用Python检验用户输入密码的复杂度

    用Python检测用户输入密码的复杂度,灰常简单! 密码强度检测规则: 至少包含一个数字 至少包含一个大写字母 长度至少 8 位 主要知识点 while 循环 推导式 列表 any 函数 命令行 input 代码部分 密码强度检测 1、创建 python 文件 密码强度检测规则 1 至少包含一个数字 2 至少包含一个大写字母 3 长度至少 8 位 # 导入系…

    2023年4月2日
    00
  • 将表格内不一样的数据,用Python自动发送给不同的人,实现高效摸鱼

    事情是这样的,罪恶的资本家老板,快下班了给我发一个压缩包,让我把数据发给客户微信,搞完就可以下班了,我心想这么好,一个文件不是让我直接就提前下班吗,万万没想到… 我就知道,万恶的资本家怎么可能放弃剥削我的机会,我打开一看,一个压缩包里面放了几百个表格,一个表格里面N个人,几十万条数据,三个微信好友一万多人,我真的会谢…都特么四点了,这不是搞我吗?换别的同事,…

    Python开发 2023年4月2日
    00
  • 用Python写一个自动下载B站视频、弹幕、评论的软件

    哈喽兄弟们,今天来实现一个Python采集视频、弹幕、评论与一体的小软件。 平常咱们都是直接代码运行,不过今天我们做成软件,这样的话,咱们不仅能自己用,还能分享给小伙伴,女朋友一起使用。 内容有点多,拿好小本本,做好笔记,发车了~ 效果展示 我们先来看看效果,全部代码文末获取。 整体界面 我随便找个视频下载一下 弹幕和评论我都顺便下载了 有一说一,确实方便,…

    Python开发 2023年4月2日
    00
  • 使用Python探索四大名著【红楼梦】人物之间的关系,简直帅呆了

        《红楼梦》作为我国四大名著之一,古典小说的巅峰之作,粉丝量极其庞大,而红学也经久不衰。所以我们今天通过 Python 来探索下红楼梦里那千丝万缕的人物关系,话不多说,开始整活! 一、准备工作 红楼梦txt格式电子书一份 金陵十二钗+贾宝玉人物名称列表 宝玉 nr 黛玉 nr 宝钗 nr 湘云 nr 凤姐 nr 李纨 nr 元春 nr 迎春 nr 探春…

    2023年4月2日
    00
  • 10个优秀的Python库,实用且有趣

    哈喽兄弟们,今天分享10个优秀的Python库,超级实用! 为什么这么多人选择学习python?首先,python是一门全场景编程语言,对于初学编程的人而言,选择一门全场景编程语言是非常不错的选择;其次,python语言简单易学,对初学者十分友好,即便没有任何编程语言基础也很容易学习;另一大原因是因为python拥有大量的第三方库,开箱即用,可以更好地提高工…

    Python开发 2023年4月2日
    00
  • 毕业设计经典案例:Python实现疫苗接种数据库管理

    那一年过年前,疫情开始爆发,对全国人民的生活和工作造成了严重的影响。但凭借着国家强盛的实力,新冠疫苗也很快的被技术人员研发出来,人们通过接种新冠疫苗来抵御新冠病毒的危害。本次通过接种新冠疫苗的这个数据统计,来设计“疫苗接种数据库”,存储人们接种疫苗的相关信息,并实现“增删改查”等基本操作以及其他的拓展功能。 国内新冠疫苗人员接种后,如果不通过数据统计到数据库…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部