热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1.1&1.2迭代对象解包:多变量赋值技巧与应用

在处理包含多个元素的可迭代对象时,如何将其内部元素解压并同时赋值给多个变量是一个常见的需求。本文将详细介绍多变量赋值的技巧及其应用场景,帮助读者更好地理解和利用这一强大的编程工具。通过具体的示例和代码片段,我们将展示如何高效地实现这一操作,并探讨其在实际开发中的多种用途。

1.1&1.2 解压可迭代对象赋值给多个变量

现在有一个包含N个元素的可迭代对象,怎样把它里面的元素解压后同时赋值给N个变量?怎样同时赋值给M个变量(M

问题描述

现在有一个包含N个元素的可迭代对象,怎样把它里面的元素解压后同时赋值给N个变量?怎样同时赋值给M个变量(M

解决方案

可以通过一个简单的赋值语句解压并赋值给多个变量,前提是变量的数量和序列元素数量是一样的(否则会抛出ValueError)。

p = [4, 5]
x, y = p
print(x, y)
# 输出结果:4 5

data = ["Test", 1, 3.14, (2021, 12, 1)]
a, b, c, d = data
print(a, b, c, d)
# 输出结果:Test 1 3.14 (2021, 12, 1)

a, b, c, (year, month, day) = data
print(a, b, c, year, month, day)
# 输出结果:Test 1 3.14 2021 12 1

当变量的个数少于可迭代对象元素的个数时,可以用Python的星号表达式来解决。

data = [1, 2, 3, 4, 5]
a, b, *c, d = data
print(a, b, c, d)
# 输出结果:1 2 [3, 4] 5

需要注意的是上面解压出的c变量永远是list类型,不管c的元素有几个(包括0个)。


总结

任何可迭代对象都可以实现这种解压赋值,包括列表、元组、字符串、文件对象、迭代器和生成器。
比如:

s = "hello"
a, b, c, d, e = s
print(a, b, c, e)
# 输出结果:h e l o

推荐阅读
author-avatar
NarratorWang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有