想要让自己代码更酷吗,来看看python技能树中的那些推导式吧

简介: 想要让自己代码更酷吗,来看看python技能树中的那些推导式吧
  🐱‍👓🐱‍👓🐱‍👓🐱‍👓   作者:不良使
 🐱‍👓🐱‍👓🐱‍👓🐱‍👓🐱‍👓🐱‍👓   🐱‍👤python建模赛道top3      🐱‍👤华为云享专家
🐱‍👓🐱‍👓🐱‍👓🐱‍👓🐱‍👓🐱‍👓🐱‍👓🐱‍👓 如果认为博主的文章有帮助,记得一键三连👀👀

系列专栏

python技能数image.pngimage.png不用推导式

list1=[]
for i in range(10):
    list1.append(i)
print(list1)
结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

**

列表推导式

**

# TODO  列表推导式
# 推导式   [结果  for 变量 in 可迭代对象]
list2=[i for i in range(10)]
print(list2)
#python一期到python十八期
list3=["python%s" % i for i in range(1,19)]
print(list3)
#筛选模式 和if条件结合使用
#[结果 for 变量 in 可迭代对象 if 条件]
list4=[i for i in range(100) if i%2==0 ]
print(list4)
#TODO 寻找名字中带有  两个e  的人的名字
names=[["Tom","Ailly","Jepetty","John","steem"],
       ["Alice","People","Class","numpter","murrep"]]
#不用推导式的方法
result=[]
for i in names:
    for j in i:
        if j.count("e")>=2:
            result.append(j)
print(result)
#推导式
gen=[j for i in names for j in i if j.count("e")>=2]
for i in gen:
    print(i)
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
['python1', 'python2', 'python3', 'python4', 'python5', 'python6', 'python7', 'python8', 'python9', 'python10', 'python11', 'python12', 'python13', 'python14', 'python15', 'python16', 'python17', 'python18']
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]
['Jepetty', 'steem', 'People']
Jepetty
steem
People

生成器推导式

# TODO 生成器推导式
#注意:生成器推导式和列表推导式语法基本一样,不是[],而是()
lists=[12,11,23,1]
list5=(i for i in lists)
for i in list5:
    print(i)
#第几次
list6=["第%s次" % i for i in range(1,19)]
print(list6)
#筛选模式 和if条件结合使用
#(结果 for 变量 in 可迭代对象 if 条件)
list6=(i for i in range(100) if i%3==0)
for k in list6:
    print(k)
#TODO 寻找名字中带有  两个e  的人的名字
names=[["Tom","Ailly","Jepetty","John","steem"],
       ["Alice","People","Class","numpter","murrep"]]
#不用推导式的方法
result=[]
for i in names:
    for j in i:
        if j.count("e")>=2:
            result.append(j)
print(result)
#推导式
gen=(j for i in names for j in i if j.count("e")>=2)
for i in gen:
    print(i)

image.png

['Jepetty', 'steem', 'People']
Jepetty
steem
People

注意:注意:生成器推导式和列表推导式语法基本一样,不是[],而是(),只是括号不一样,语法基本一样

列表推导式和生成器推导式的区别:

# 列表推导式
#    [结果 for 变量 in 可迭代对象]
#生成器推导式
#    (结果  for 变量 in 可迭代对象)
#  TODO 区别: 1、列表推导式比较耗内存,一次性加载。生成器推导式几乎不占内存,使用的时候才分配和使用内存
#             2、列表推导式得到的是列表,生成器推导式得到的是一个 @@生成器@@

**

字典推导式

**

# TODO 字典推导式
lst1=['jay','jj','james']
lst2=["周杰伦","李大钊","尼姆斯"]
# dict={}
# for i in range(len(lst1)):
#     dict[lst1[i]]=lst2[i]
# print(dict)
A={lst1[i]:lst2[i] for i in range(len(lst1))}
print(A)

image.png**

集合推导式

**

# TODO 集合推导式    自带一个去重功能,特点:无序不重复
lst=[1,-2,13,4,5,-4,5,-5,-6]
# se ={abs(i) for i in lst}       #abs绝对值
se={i for i in lst}
print(se)

image.pngimage.png

目录
相关文章
|
1天前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
12 6
基于Python访问Hive的pytest测试代码实现
|
3天前
|
设计模式 缓存 开发者
Python中的装饰器:简化代码,提高可读性
【9月更文挑战第10天】在Python编程的世界中,装饰器是一种强大的工具,它允许开发者在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和生动的例子,带你了解装饰器的概念、使用方法及其在实际开发中的应用价值。我们将一起探索如何利用装饰器来简化代码结构,提升代码的可读性和可维护性,让你的编程之旅更加顺畅。
|
2天前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
15 8
|
1天前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
13 4
|
4天前
|
开发者 Python
Python中的装饰器:简化你的代码
【9月更文挑战第9天】本文将介绍Python中的一种强大工具——装饰器。我们将从基础概念开始,逐步深入到装饰器的实际应用,包括函数装饰器和类装饰器。我们将通过实例来展示如何利用装饰器简化代码,提高代码的可读性和可维护性。最后,我们将探讨装饰器的一些高级用法,以及如何避免在使用时可能遇到的问题。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解和使用装饰器。
14 6
|
1天前
|
数据处理 开发者 Python
探索Python中的列表推导式
在Python编程中,列表推导式(List Comprehensions)是一种简洁而强大的工具,允许开发者用一行代码生成整个列表。本文将深入探讨列表推导式的用法、优势以及在实际项目中的应用。通过具体的示例,我们将展示如何利用列表推导式简化代码,提升可读性和执行效率。无论你是编程新手还是经验丰富的开发者,都能从本文中获得有价值的见解和技巧。
|
5天前
|
Python
揭秘!Python系统编程里那些让代码自由穿梭的神奇代码行
【9月更文挑战第9天】在Python的世界里,一些简洁的代码行却蕴含着强大的功能,如列表推导式让列表生成仅需一行代码:`squares = [x**2 for x in range(10)]`。`with`语句则能自动管理文件和网络连接的关闭,如`with open('example.txt', 'r') as file:`。`lambda`函数和装饰器则允许快速定义函数和增强功能,而上下文管理器更是资源处理的利器。这些特性让Python代码更加优雅高效。
16 4
|
4天前
|
安全 数据安全/隐私保护 Python
Python系统编程实战:文件系统操作与I/O管理,让你的代码更优雅
【9月更文挑战第10天】Python不仅在数据分析和Web开发中表现出色,在系统编程领域也展现出独特魅力。本文将带你深入探讨Python中的文件系统操作与I/O管理,涵盖os、shutil和pathlib等模块的基础使用方法,并通过示例代码展示如何优雅地实现这些功能。通过掌握缓冲、异步I/O等高级特性,你将能够编写更高效、安全且易于维护的Python代码。示例包括使用pathlib遍历目录、设置缓冲区提升文件写入性能以及使用aiofiles实现异步文件操作。掌握这些技能,让你在Python系统编程中更加得心应手。
11 2
|
5天前
|
C语言 Python
深入理解并实践Python中的列表推导式
深入理解并实践Python中的列表推导式
9 1
|
4天前
|
Linux 开发者 Python
从Windows到Linux,Python系统调用如何让代码飞翔🚀
【9月更文挑战第10天】在编程领域,跨越不同操作系统的障碍是常见挑战。Python凭借其“编写一次,到处运行”的理念,显著简化了这一过程。通过os、subprocess、shutil等标准库模块,Python提供了统一的接口,自动处理底层差异,使代码在Windows和Linux上无缝运行。例如,`open`函数在不同系统中以相同方式操作文件,而`subprocess`模块则能一致地执行系统命令。此外,第三方库如psutil进一步增强了跨平台能力,使开发者能够轻松编写高效且易维护的代码。借助Python的强大系统调用功能,跨平台编程变得简单高效。
11 0