太赞了!16个好用到爆的Python实用技巧!

2023-11-07

介绍

人生苦短,快学Python!

Python 是一门用途广泛的编程语言,它具有大量的库和框架。有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松,编写代码更高效。

本文将探讨一些鲜为人知的 Python 技巧,这些技巧非常有用,但并不广为人知。通过学习和使用这些技巧,可以帮你节省时间和精力,并使你的代码更加优雅和高效。那么,让我们深入探索 Python 语言的这些隐藏宝藏吧!

1.三元运算符

三元运算符是 if-else 语句的简写。语法是value_if_true if condition else value_if_false。三元运算符是一行代码,可以替代多行 if-else 语句,使你的代码更加简洁。

a = 5 
b = 10 
max = a if a > b else b  # value_if_true if condition else value_if_false

print(max)
# 10

上面的代码通过检查“a”是否大于“b”,如果为真则返回“a”,如果为假则返回“b”。

2.枚举函数

enumerate()函数向可迭代对象添加一个计数器,并以枚举对象的形式返回。当你想要遍历列表并跟踪索引时,此函数很有用。

fruits = ['apple', 'banana', 'mango'] 
for index, fruit in enumerate(fruits): 
    print(index, fruit)

# 0 apple
# 1 banana
#2  mango

3. 压缩函数

zip()函数聚合来自每个可迭代对象的元素并返回一个元组迭代器。当你想同时遍历两个或多个列表时,此函数很有用。

list1 = [1, 2, 3] 
list2 = ['a', 'b', 'c'] 
for x, y in zip(list1, list2):
    print(x, y)

# 1 a
# 2 b
# 3 c

4. 列表生成式

列表生成式是一种从现有列表或任何可迭代对象创建列表的简洁方法。这是一种可以替代 for 循环的单行代码,使你的代码更加高效,并使代码的可读性更强。

squared_numbers = [x**2 for x in range(1, 6)]

print(squared_numbers)
# [1, 4, 9, 16, 25]

5. 匿名函数

Lambda 函数是使用lambda关键字定义的匿名函数。当你需要编写一次性的小函数并且不想使用关键字def来定义命名函数时,它们很有用。

add = lambda x, y: x + y 

result = add(3, 4)

print(result)
# 7

6.any()和all()函数

any()函数和all()函数返回True或False基于 iterable 中元素的真实性。如果 iterable 中的任何元素为真,则函数any()返回True,如果 iterable 中的所有元素都为真,则函数all()返回True。


numbers = [1, 2, 3, 0, 4] 
result = any(numbers) # True 
result = all(numbers) # False。0使结果为False

7. 迭代模块

itertools模块提供了一组函数来处理迭代器。该模块中的函数包括chain、product和permutations。

import itertools 
numbers = [1, 2, 3] 
result = list(itertools.permutations(numbers)) 

# 输出所有排列组合 
# [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

8. 生成器

生成器是一种可迭代的类型,它可以即时生成值,而不是将它们存储在内存中。它是使用yield关键字定义的,用于创建自定义迭代器。

# 使用yield关键字创建生成器 
def fibonacci_series(n):
    a, b = 0, 1
    for i in range(n):
        yield a
        a, b = b, a + b

# 输出迭代器中的值 
for number in fibonacci_series(10):
    print(number)

# 0
# 1
# 1
# 2
# 3
# 5
# 8
# 13
# 21
# 34

9.装饰器

装饰器是一种修改函数或类行为的方法。使用@符号进行定义,可用于向函数添加功能,例如日志记录、计时或身份验证。

def log_function(func):
    def wrapper(*args, **kwargs):
        print(f'Running {func.__name__}')
        result = func(*args, **kwargs)
        print(f'{func.__name__} returned {result}')
        return result
    return wrapper

@log_function
def add(x, y):
    return x + y

print(add(5,7))

# 运行add函数,返回值为12

10. 使用多个函数参数

在 Python 中,可以使用***运算符来处理多个函数参数。*运算符用于将参数列表作为单独的位置参数进行传递,运算符**用于传递关键字参数的字典。

def print_arguments(*args, **kwargs):
    print(args)
    print(kwargs)

print_arguments(1, 2, 3, name='John', age=30)

# (1, 2, 3)
# {'name': 'John', 'age': 30}

11. 动态导入

当你想根据用户输入或配置导入模块时,可以使用模块动态导入模块importlib。

import importlib

module_name = 'math'
module = importlib.import_module(module_name)
result = module.sqrt(9)

12. 字典生成式

字典生成式是一种从现有字典或任何可迭代对象创建字典的简洁方法。它是一种可以替代 for 循环的单行代码,使你的代码更加高效,代码可读性更强。

squared_numbers = {x: x**2 for x in range(1, 6)}
print(squared_numbers)

# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

13. 可调用对象

在 Python 中,任何可以称为函数的对象都称为可调用对象,包括函数、方法、类,甚至是定义__call__方法的对象。

class Adder:
    def __call__(self, x, y):
        return x + y

adder = Adder()
result = adder(3, 4)

print(result)
#7

14.用下划线分隔大数字/字符

大数字很难一眼看出来是多大,在 Python 中可以用下划线来使数字更易读。

num_test = 100_345_405 # 一个大数字

print(num_test)
# 100345405

15.快速合并两个字典

可以使用以下代码在 Python 中快速合并 2两个字典。

dictionary_one = {"a": 1, "b": 2}
dictionary_two = {"c": 3, "d": 4}

merged = {**dictionary_one, **dictionary_two}

print(merged)  
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}

16. 列表、集合和字典是可变的

可变意味着可以更改或更新对象(列表、集合或字典),而无需更改内存中对象的指针。实际效果可见如下示例。

在下面的示例中,通过添加一个新城市来更新城市列表,可以看到 ID(对象指针)保持不变,集合和字典也是如此。

cities = ["Munich", "Zurich", "London"]
print(id(cities)) # 2797174365184
cities.append("Berlin")
print(id(cities)) # 2797174365184


# 集合 
my_set = {1, 2, 3}
print(id(my_set))  # 2797172976992
my_set.add(4)
print(id(my_set))  # 2797172976992


# 字典 
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(id(thisdict))  #2797174128256
thisdict["engine"] = "2500cc"
print(id(thisdict))  #2797174128256

0基础怎样学Python?

经常有各行各业的朋友表示经济压力大,想学Python开辟副业技能赚钱,但又不知道怎样学习。

这里给大家免费分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

在这里插入图片描述

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

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

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

在这里插入图片描述

二、学习软件

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

三、全套PDF电子书

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

在这里插入图片描述

四、入门学习视频

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

在这里插入图片描述

四、实战案例

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

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

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

在这里插入图片描述
配套600集视频:

在这里插入图片描述

六、面试资料

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

在这里插入图片描述

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

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

太赞了!16个好用到爆的Python实用技巧! 的相关文章

随机推荐

  • Jetson Nano新机安装Tensorflow(版本JetPack4.4)

    记录安装Tensorflow的一些坑 目录 文章目录 前言 一 格式化and烧录 二 环境配置 1 修改环境变量 2 更换国内镜像源 三 pip安装 四 Jtop安装 1 依赖安装 2 安装jtop 五 安装Tensorflow 1 安装一
  • 100个特别的遥感应用和用途

    1利用空间主动和被动传感器测定土壤含水量 土壤水分有助于理解地球科学 例如 它解释了地球的水循环 天气预报 干旱和洪水 但是你知道有两种方法可以从太空中获取土壤水分吗 首先 它使用 passive and active sensors 主动
  • windows下使用tail命令

    tail 命令为linux 下的常用查看日志命令 可惜在windows下没有 还好有好心人开发了一个可以在Windows下的运行的小工具 来给分享一下 链接 https pan baidu com s 1 LiogYgYcAEbZUstdE
  • Python:爬虫乱码

    文章目录 一 预备知识 进制 位 bit 与字节 Byte 编码 解码 二 编解码方式 以文本 字符串编解码为例 规则 1 ASCII字符集 ASCII编 解码 2 GBK字符集 GBK编 解码 3 Unicode字符集 UTF 8编 解码
  • 零基础如何高效的学习Python,这是我给你的建议:真心诉说 分享资料

    IT 行业的变化快是众人皆知的 需要持续去学习新的知识内容 但是 往往我们工作之后 经常发现学习的东西很少了 学习效率非常低 感觉自己到了一个瓶颈期 久而久之 就演变成 一年工作经验 重复去用十年 的怪圈 不管你是已经工作了 还是正在学习中
  • Spark Streaming 实战篇

    摘要 Sprak Streaming属于Saprk API的扩展 支持实时数据流 live data streams 的可扩展 高吞吐 hight throughput 容错 fault tolerant 的流处理 可以接受来自KafKa
  • 华为OD机试真题 羊、狼、农夫过河JavaScript java python c++ 参考解题

    题目描述 羊 狼 农夫都在岸边 当羊的数量小于狼的数量时 狼会攻击羊 农夫则会损失羊 农夫有一艘容量固定的船 能够承载固定数量的动物 要求求出不损失羊情况下将全部羊和狼运到对岸需要的最小次数 只计算农夫去对岸的次数 回程时农夫不会运送羊和狼
  • 小白第一次创建STM32的工程和编译时 ,报错“.\OBJ\test.axf: Error: L6218E: Undefined symbol assert_param (referred from

    小白第一次创建STM32的工程和编译时 报错 OBJ test axf Error L6218E Undefined symbol assert param referred from misc o 解决方法就是加宏定义 USE STDPE
  • Js中换行的操作

    1 众所周知的是 n 注意 n前后的空格 alert 第一行 n 第二行 结果如下 2 当然 r 也实现了 alert 第一行 r 第二行 如下图所示 3 使用HTML的 br 标签来进行换行也是可以的 在这里插入代码片 document
  • 服务器心跳信号,服务器心跳攻击

    服务器心跳攻击 内容精选 换一换 检测IDE Daemon与Host之间的心跳 用于检测Host侧的服务器是否在运行 以HwHiAiUser用户登录Host侧服务器 执行命令 检测IDE Daemon与Host之间的心跳 IDE daemo
  • ubuntu离线安装deb包

    假如要下载numa库 在一台有网的电脑上执行下述操作 获取numa的deb及依赖包列表文件download list mkdir deb temp cd deb temp sudo apt get allow unauthenticated
  • Spring scope详解

    如何使用spring的作用域
  • 《C++ Primer》学习笔记目录汇总

    C Primer 第五版 章节目录 第1章 开始 第2章 变量和基本类型 第3章 字符串 向量和数组 第4章 表达式 第5章 语句 第6章 函数 第7章 类 第8章 IO库 第9章 顺序容器 第10章 泛型算法 第11章 关联容器 第12章
  • 凡是某单元有特定字符的,则删除整行 (VBA )

    有个工作表 有N行N列 B列是领料部门 C列是领料用途 E列是发料仓库 凡是B列有 研发部 技术部 则整行删除 凡是C列有 检测 修理 生产 则整行删除 凡是E列有 基建仓库 成品仓库 则整行删除 Sub Delrows Dim Arr k
  • PHP+JavaScript+HTML变量之间赋值及传递

    本文是最近做WAMP网站的学习知识 这做这个网站过程中需要通过新闻通告的超链接显示相应的具体内容 所以就涉及到一些相关变量赋值传递的内容 包括 HTML超链接传递值通过JavaScript显示 JavaScript变量转换成PHP变量 超链
  • 使用sort排序注意事项

    按照对3求余的余数的从小到大排序 余数相等的按值从小到大排序 bool cmp int a int b if a 3 b 3 return a 3
  • feign拦截器和解码器

    Feign拦截器和解码器 业务需求 在Spring Cloud的项目中 A服务使用Feign调用B服务的某个接口 如果需要传递全局认证token或参数 在方法参数里面加相应字段的方式显然是不可取的 首先想到的是AOP方式 使用切面拦截Fei
  • MySQL体系架构与运行机制

    本文知识点较多 篇幅较长 请耐心学习 题记 文章内容输出来源 拉勾教育Java高薪训练营 本篇文章是 MySQL 学习课程中的一部分笔记 前言 MySQL是最流行的关系型数据库软件之一 由于其体积小 速度快 开源免费 简单易用 维护成本低等
  • InnoSetup 安装程序设置环境变量

    InnoSetup 通过写入注册表值实现安装程序设置系统全局环境变量 环境变量以字符串值存储在注册表中 因此可以使用 Registry 区段操作它们 系统范围的环境变量位于 HKEY LOCAL MACHINE SYSTEM Current
  • 太赞了!16个好用到爆的Python实用技巧!

    介绍 人生苦短 快学Python Python 是一门用途广泛的编程语言 它具有大量的库和框架 有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松 编写代码更高效 本文将探讨一些鲜为人知的 Python 技巧 这