5个节约生命的python小技巧

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

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

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


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]


[En]

Here is the reverse stitching of a list of words into a string:

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



2、列表推导

[En]

List derivation, a technique that can change your worldview! This is a very powerful, intuitive, and readable way to manipulate lists quickly.

[En]

Suppose there is a random function that returns the square of a number and adds 5:

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


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]


[En]

If you use list derivation, the code becomes instantly elegant:

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]


for item in list:
if conditional:
expression


Very Cool！

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函数

Lambda

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

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


[En]

So why use this strange syntax? This becomes useful when you want to do something simple without defining the actual function.

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]


[En]

Compared with the following conventional nonsense code, it is simple and elegant:

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]


4、if-else 单行表达

[En]

Somewhere in your code, there may be conditional statements like this nonsense:

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


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


5、zip()函数

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


[En]

If you think it’s okay, please give me a free attention + collection.

Original: https://www.cnblogs.com/hahaa/p/16401933.html
Author: 轻松学Python
Title: 5个节约生命的python小技巧

(0)

大家都在看

• python test.py_python之测试框架pytest（二）

一、ddt(数据驱动测试 Data-Driven Testing) 1、数据和测试逻辑分离，便于维护。当数据和测试逻辑各自需要修改的时候，不会影响到对方 2、测试用例之间是独立的，…

Python 2023年9月13日
0113
• 全面解析若依框架（springboot-vue前后分离–后端部分）

若依框架 1、框架分解 * – 启动配置 – 使用技术 – 功能分解 2、功能详解 * 分页实现（使用PageHelper） – 分…

Python 2023年9月26日
0258
• ThreeJS中创建文字的几种方法

1. DOM + CSS 传统html5的文字实现，用于添加描述性叠加文字的方法。一般使用绝对定位，并且保证z-index够大，用于显示在3D场景之上。 优点:与CSS3D效果一致…

Python 2023年6月3日
0128
• 【数据挖掘竞赛】零基础入门数据挖掘-二手汽车价格预测

目录 一、导入数据 二、数据查看 可视化缺失值占比 绘制所有变量的柱形图，查看数据 查看各特征与目标变量price的相关性 三、数据处理 处理异常值 查看seller,offerT…

Python 2023年11月5日
0124
• python包管理

1.1 包管理 1.1.1 查看包 pip list查看已经安装的第三方库 pip list –outdated：可以查看有新版本的第三方库，可显示现在安装的版本，以及…

Python 2023年8月4日
0136
• python数据分析之pandas入门1

文章目录 学习目标 学习内容 * pandas的理解 – Numpy和Pandas的对比 Series类型 DataFrame类型 – DataFrame是…

Python 2023年8月17日
0100
• 浅析WSGI协议

在总结Python项目部署的细节时，粗略的写过有关WSGI协议的内容，接下来这篇讲讲有关WSGI设计思路，以及如何手写一个WSGI的应用程序？ 什么是WSGI协议？WSGI的作用？…

Python 2023年5月24日
0135
• 虚拟机中CentOS-7.9的硬盘空间扩容(EXSI)

🚀 优质资源分享 🚀 学习路线指引（点击解锁）知识定位人群定位🧡 Python实战微信订餐小程序 🧡 进阶级本课程是python flask+微信小程序的完美结合，从项目搭建到腾讯…

Python 2023年8月10日
0144
• 不信谣不传谣，亲自动手验证ModelBox推理是否真的“高性能”

摘要：“高性能推理”是ModelBox宣传的主要特性之一，不信谣不传谣的我决定通过原生API和ModelBox实现相同案例进行对比，看一下ModelBox推…

Python 2023年10月28日
095
• scrapy发起post请求,模拟登录github

文章目录 一.使用scrapy模拟抓取百度翻译json数据 二.scrapy模拟登录github * – 抓取思路 一.使用scrapy模拟抓取百度翻译json数据 爬…

Python 2023年10月5日
093
• python单元测试框架对比_Python单元测试框架pytest常用测试报告类型

先前博客有介绍pytest测试框架的安装及使用，现在来聊聊pytest可以生成哪些测试报告 1.allure测试报告 2.生成resultlog文件 !/usr/bin/pytho…

Python 2023年9月14日
081
• 论人类下一代语言的可能—2.4领域语言与自然语言的比较

领域认知带来领域语言，这种实质性的语言观念是否适用于自然语言？ 首先，自然语言并不是专门在认知方向使用，人类精神生活的各个侧面都在自然语言里有所反映，且相互混合，它的面貌不是单一的…

Python 2023年10月19日
0100
• 利用Django创建简单app

这是一个Django的入门Demo，文章最后有流程图总结。 检查django版本： python -m django –version 创建项目 在命令行中，cd到项目目录，然后…

Python 2023年8月6日
0130
• pandas常用功能_2：数据合并merge

python有多种数据合并的方法，在不同的场合我们可以使用不用的方法 merge可能是我们最熟悉，也最常用的一个方法，因为它的用法与mysql的连接（join）非常类似。 函数介绍…

Python 2023年8月9日
0123
• 第一章 Numpy

numpy是学习数据分析和人工智能必不可少的库，大量的计算方法在numpy中都有现成的方法，下面介绍其常用的方法 numpy替换值 如下：替换矩阵中的空字符串 #!usr/bin/…

Python 2023年8月25日
0115
• 【转】wireshark分析RDP数据前的设置

最近在分析RDP的数据流时，发现使用wireshark默认设置打开RDP数据，无法解析RDP数据的协议格式： [TencentCloudSDKException] code:Fai…

Python 2023年6月3日
0162