Python Cookbook 之一 数据结构和算法(一): 将序列分解为单独的变量

news/2024/7/24 11:25:28 标签: Python

欢迎大家扫码关注我的微信公众号:
数据之恋

将序列分解为单独的变量-目录

  • 一、问题
  • 二、解决方案
  • 三、讨论

一、问题

一个包含 N 个元素的元组或序列, 现在想将它分解为 N 个单独的变量。

二、解决方案

任何序列(或可迭代对象)都可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构要与序列相吻合。

>>> p = (4, 5)
>>> x, y = p
>>> x
4
>>> y
5

又如:

>>> data = ['a', 11, 22.1, (3, 4, 5)]
>>> s, i, f, t = data
>>> s
'a'
>>> t
(3, 4, 5)
>>> s, i, f, (t0, t1, t2) = data
>>> t0
3
>> t1
4

【注意】如果元素的数量不匹配, 将会报错(如将一个只有两个元素的序列赋值给 3 个变量)。

三、讨论

实际上不仅仅只是元组或列表, 只要对象是可迭代的, 那么就可以执行分解操作。 这包括字符串、 文件、 迭代器及生成器。 如:

>>> str = 'hello'
>>> a, b, c, d, e = str
>>> a
'h'
>>> e
'o'

如果我们在赋值的时候, 只想要其中的一部分值而丢弃另一部分, 则我们可以用一个平常用不到的变量来接收想要丢弃的值:

>>> lst = ['a', 11, 22.1, (3, 4, 5)]
>>> _, i, _, t = lst
>>> i
11
>>> t
(3, 4, 5)

【注意】一定要注意, 此时如果想要丢弃某些值, 那么接收这些值的变量一定不能在其他位置不重新赋值就使用。


http://www.niftyadmin.cn/n/732618.html

相关文章

Python Cookbook 之一 数据结构和算法(二): 从任意长度的可迭代对象中分解元素

欢迎大家扫码关注我的微信公众号: 从任意长度的可迭代对象中分解元素一、问题二、解决方案2.1 * 表达式在首位2.2 * 表达式在中间2.3 * 表达式在末位三、讨论一、问题 需要从某个可迭代对象中分解出 N 个元素, 但是这个可迭代对象的长度可能超过 N&…

Nginx 之一 服务器的安装部署(二): Nginx 服务的启停控制

欢迎大家扫码关注我的微信公众号: Nginx 服务器的安装部署(二)-目录一、Nginx 服务的信号控制1.1 获取 Nginx 服务主进程 PID1.2 Nginx 服务可接收的信号二、Nginx 服务的启动三、Nginx 服务的停止3.1 停止方式一:3.2 停止方式二…

Python Cookbook 之一 数据结构和算法(三): 保存最后 N 个元素

欢迎大家扫码关注我的微信公众号: 保存最后 N 个元素一、问题二、解决方案三、讨论一、问题 我们希望在迭代或是其他形式的处理过程中对最后几项记录做一个有限的历史记录统计。 二、解决方案 保存有限的历史记录可算是 collections.deque 的完美应用场景了。 …

kali 更新源_kali安装docker环境

最近因为要在kali上搭建一个文件上传测试平台,所以得安装一个docker环境。安装https协议、CA证书、dirmngrapt-get updateapt-get install -y apt-transport-https ca-certificatesapt-get install dirmngr2.添加GPG密钥并添加更新源curl -fsSL https://mirrors.tun…

Python Cookbook 之一 数据结构和算法(四): 找到最大或最小的 N 个元素

欢迎大家扫码关注我的微信公众号: 找到最大或最小的 N 个元素一、问题二、解决方案三、讨论一、问题 我们想在某个集合中找出最大或最小的 N 个元素。 二、解决方案 heapq 模块中有两个函数 —— nlargest() 和 nsmallest() —— 它们正是我们所需要的&#xff…

opencv和matlab图像处理的效率与效果_图像处理在工程中的应用

点击蓝字关注我们传感器图像处理在工程和科研中都具有广泛的应用,例如:图像处理是机器视觉的基础,能够提高人机交互的效率,扩宽机器人的使用范围;在科研方面,相关学者把图像处理与分子动力学相结合&#xf…

Python 之 Linux 系统中一句命令搭建下载服务器

欢迎大家扫码关注我的微信公众号: Linux 系统中一句命令搭建下载服务器一、概述二、Python 2.x 版本实现三、Python 3.x 版本实现四、访问的方法一、概述 在工作或生活中, 我们有时候需要传输文件。 实现这个功能的方式有很多, 我们可以使用…

python生成器实例_python生成器generator用法实例分析

本文实例讲述了python生成器generator用法。分享给大家供大家参考。具体如下: 使用yield,可以让函数生成一个结果序列,而不仅仅是一个值 例如: def countdown(n): print "counting down" while n>0: yield n #生成一…