美文网首页
python解压赋值

python解压赋值

作者: 写给明天的自己 | 来源:发表于2021-10-17 21:14 被阅读0次

情绪的尽头,不是脏话,不是发泄,而是沉默。

上一篇:python获取相对路径、绝对路径的file使用

可迭代序列或者可迭代对象解压后赋值给多个变量

前提条件:变量的数量必须和序列元素的数量一样多。

变量个数多于序列元素个数报错:ValueError: not enough values to unpack(expected 6, got 5)
变量个数少于元素个数报错:ValueError: too many values to unpack(expected 4)

示例如下:

Tuple(元组)
num_tuple = (1, 2, 3, 4, 5)
a, b, c, d, e  = num_tuple
print(a, b, c, d, e)
List(列表)
num_list = [1, 2, (3, 4), 5]
a, b, c, d = num_ list
print(a, b, c, d)
String(字符串)
name_str = 'chb'
a, b, c = name_str
print(b)
如果你的只想使用其中几个元素,可以使用其他(未使用过的)变量名去占位,示例如下:
num_tuple = (1, 2, 3, 4, 5)
a, _, c, _, e = num_tuple
print(a, c, e)

有些时候你在解压序列的时候并不知道这个序列有多少个元素,因此你也不知道需要多要个变量来占位,此时就需要
使用python的星号表达式,示例如下:

例如现在有一个比赛需要计算去掉最高分和最低分后的平均分,先排序,再使用星号表达式。

score_list = [85, 86, 78, 99, 74, 78]
score_list = sorted(score_list, reverse=True)
s_max, *s_mid, s_min = score_list
print(sum(s_mid)/len(s_mid))

注意以上解压的s_mid永远都是列表类型。

嵌套序列中使用占位变量

v_list = ['name', 'age', 10, ['play', 'ball', 'lol']]
name, *_, [*_, hobby] = v_list
print(name, hobby)

如果感觉本文对您有帮助可以点个赞哦

本文为学习笔记,转载请标明出处

本文仅供交流学习,请勿用于非法途径

仅是个人意见,如有想法,欢迎留言

相关文章

  • python cookbook学习笔记01

    python cookbook一些知识点 一、python数据结构与算法 python解压赋值 字符解压赋值 占位...

  • python解压赋值

    情绪的尽头,不是脏话,不是发泄,而是沉默。 上一篇:python获取相对路径、绝对路径的file使用[https:...

  • PTYHON-COOKBOOK学习记录-1

    解压序列赋值给多个变量:在python中有个很好用的特性就是解压赋值,具体解释请看下面的代码(供赋值粘贴看): p...

  • 解压提取

    python 3支持解压赋值 x, *_, y = [1, 2, 3, 4, 5] 则x和y分别赋值为1和5 而S...

  • python解压序列赋值给多个对象

    任何序列或者字符串可以通过一个简单的赋值语句将序列里面的值赋值给其他对象。 例子 字符串的例子

  • 【2017-08-30】数据结构与算法(一)

    解压序列赋值给多个变量及collections. deque使用 解压序列(或者可迭代对象)赋值给多个变量一般情况...

  • python cookbook第一章笔记

    1.1 解压序列赋值给多个变量 任何序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。唯一的...

  • Python变量和数据类型

    一. Python中的变量赋值 单变量赋值: 多变量赋值: 二. Python中的数据类型 Python有五个...

  • Python之codebook笔记

    1. 解压序列赋值给多个变量 任何的序列(或者可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。唯一的前...

  • day4

    算术运算 赋值运算 增量赋值 交叉赋值 链式赋值 解压赋值 流程控制之if 语法1:if 条件:代码1代码2代码3...

网友评论

      本文标题:python解压赋值

      本文链接:https://www.haomeiwen.com/subject/yjnwoltx.html