Python 常用小妙招(四)

简介: 函数可以把多个列表合并成一个列表,多个列表元素打包成元组。

zip 函数

zip() 函数可以把多个列表合并成一个列表,多个列表元素打包成元组。

<br/>

titles = ['t1', 't2', 't3']
hrefs = ['/t1.html', '/t2.html', '/t3.html']

for title, href in zip(titles, hrefs):
    print(title, href)
    
# 结果如下
t1 /t1.html
t2 /t2.html
t3 /t3.html

<br/>

zip 很智能,如果列表长度不一样,会自行割舍,并不会报错

titles = ['t1', 't2', 't3']
hrefs = ['/t1.html', '/t2.html']

for title, href in zip(titles, hrefs):
    print(title, href)
    
# 结果如下
t1 /t1.html
t2 /t2.html

<br/>

如果多个列表的数据顺序关联性很高,就可以使用 zip 函数进行打包,方便操作多个列表元素。

<br/>

Python 中的推导式

列表推导式

列表推导式可以很方便的构造列表,只用一行代码就能帮你进行列表的迭代及运算。

语法如下:

[ 表达式 for 变量 in 列表 ] 或者 [ 表达式 for 变量 in 列表 if 条件 ]

nums = [1, 2, 3, 4, 5]

li = [num**2 for num in nums]    # 把列表中的每个数平方一下

# 结果如下
# [1, 4, 9, 16, 25]

<br/>

10 以内的奇偶数

# 奇数
odd_num = [num for num in range(1, 11) if num % 2 == 1]
# [1, 3, 5, 7, 9]

# 偶数
even_num = [num for num in range(1, 11) if num % 2 == 0]
# [2, 4, 6, 8, 10]

<br/>

99 乘法表

# 99乘法表
t_99 = ['\t'.join([f'{col} * {row} = {row * col}' for col in range(1, row + 1)]) for row in range(1, 10)]

print('\n'.join(t_99))

# 结果如下
1 * 1 = 1
1 * 2 = 2    2 * 2 = 4
1 * 3 = 3    2 * 3 = 6    3 * 3 = 9
1 * 4 = 4    2 * 4 = 8    3 * 4 = 12    4 * 4 = 16
1 * 5 = 5    2 * 5 = 10    3 * 5 = 15    4 * 5 = 20    5 * 5 = 25
1 * 6 = 6    2 * 6 = 12    3 * 6 = 18    4 * 6 = 24    5 * 6 = 30    6 * 6 = 36
1 * 7 = 7    2 * 7 = 14    3 * 7 = 21    4 * 7 = 28    5 * 7 = 35    6 * 7 = 42    7 * 7 = 49
1 * 8 = 8    2 * 8 = 16    3 * 8 = 24    4 * 8 = 32    5 * 8 = 40    6 * 8 = 48    7 * 8 = 56    8 * 8 = 64
1 * 9 = 9    2 * 9 = 18    3 * 9 = 27    4 * 9 = 36    5 * 9 = 45    6 * 9 = 54    7 * 9 = 63    8 * 9 = 72    9 * 9 = 81

<br/>

上面的推导式如同下面的 for 循环

ret_li = []
for row in range(1, 10):
    
    ret_li.append('\t'.join([f'{col} * {row} = {row * col}' for col in range(1, row + 1)]))

继续把 join 里面的推导式还原成 for

ret_li = []
for row in range(1, 10):
    temp_li = []
    
    for col in range(1, row + 1)
        # 把每一行添加到临时列表中
        temp_li.append(f'{col} * {row} = {row * col}')
        
    ret_li.append('\t'.join(temp_li))

<br/>

字典推导式

Python2.7 以来,列表推导的概念就移植到了字典上,从而有了字典推导

<br/>

titles = ['t1', 't2', 't3']
hrefs = ['/t1.html', '/t2.html', '/t3.html']


news_dict = {title: href for title, href in zip(titles, hrefs)}

# 结果如下
{'t1': '/t1.html', 't2': '/t2.html', 't3': '/t3.html'}

<br/>

cookie 字符串转换成 cookie 信息字典

cookies_str = 'session_id=asdhasj; name=hui; age=18'

# 先按 `; ` 分割,再按 `=` 分割,索引0为字典的key,1位value
cookie_dict = {info.split('=')[0]: info.split('=')[1] for info in cookies_str.split('; ')}

# 结果如下
{'session_id': 'asdhasj', 'name': 'hui', 'age': '18'}

<br/>

集合推导式

集合的特点:元素不重复,所以集合推导式自带去重的功能。
li = [1, -1, 8, -8, 12]
s = {abs(i) for i in li}

# 结果如下
{8, 1, 12}

<br/>

生成器推导式

In [1]: g_num = (num for num in range(1000))

In [2]: g_num
Out[2]: <generator object <genexpr> at 0x00000211C2A118C8>

In [3]: next(g_num)
Out[3]: 0

In [4]: next(g_num)
Out[4]: 1

<br/>

尾语

✍ 用 Code 谱写世界,让生活更有趣。❤️

✍ 万水千山总是情,点赞再走行不行。❤️

✍ 码字不易,还望各位大侠多多支持。❤️

相关文章
|
Python
python中的常用小技巧
python中的常用小技巧
134 0
|
API ice Python
Python 常用小妙招(一)
Python 常用小妙招(一)
Python 常用小妙招(二)
Python 常用小妙招(二)
|
索引 Python
Python 常用小妙招(三)
Python 常用小妙招(三)
|
弹性计算 Linux Python
有哪些常用的 Python 标准库?
有哪些常用的 Python 标准库?
|
10天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
3天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
12 5
|
3天前
|
人工智能 数据挖掘 开发者
探索Python编程:从基础到进阶
【10月更文挑战第32天】本文旨在通过浅显易懂的语言,带领读者从零开始学习Python编程。我们将一起探索Python的基础语法,了解如何编写简单的程序,并逐步深入到更复杂的编程概念。文章将通过实际的代码示例,帮助读者加深理解,并在结尾处提供练习题以巩固所学知识。无论你是编程新手还是希望提升编程技能的开发者,这篇文章都将为你的学习之旅提供宝贵的指导和启发。
|
8天前
|
数据处理 Python
从零到英雄:Python编程的奇幻旅程###
想象你正站在数字世界的门槛上,手中握着一把名为“Python”的魔法钥匙。别小看这把钥匙,它能开启无限可能的大门,引领你穿梭于现实与虚拟之间,创造属于自己的奇迹。本文将带你踏上一场从零基础到编程英雄的奇妙之旅,通过生动有趣的比喻和实际案例,让你领略Python编程的魅力,激发内心深处对技术的渴望与热爱。 ###

热门文章

最新文章