Python 官方文档:入门教程 => 点击学习
今天就跟大家聊聊有关python解压可迭代对象赋值给多个变量的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。问题描述现在有一个包含N个元素的可迭代对象,怎样把它里面的元素解压
今天就跟大家聊聊有关python解压可迭代对象赋值给多个变量的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
现在有一个包含N个元素的可迭代对象,怎样把它里面的元素解压后同时赋值给N个变量?怎样同时赋值给M个变量(M<N)?
p = [4, 5]x, y = pprint(x, y)# 输出结果:4 5data = ['Test', 1, 3.14, (2021, 12, 1)]a, b, c, d = dataprint(a, b, c, d)# 输出结果:Test 1 3.14 (2021, 12, 1)a, b, c, (year, month, day) = dataprint(a, b, c, year, month, day)# 输出结果:Test 1 3.14 2021 12 1
当变量的个数少于可迭代对象元素的个数时,程序会抛出ValueError。这时,可以用Python的星号表达式来解决。
data = [1, 2, 3, 4, 5]a, b, *c, d = dataprint(a, b, c, d)# 输出结果:1 2 [3, 4] 5
需要注意的是上面解压出的c变量永远是list类型,不管c的元素有几个(包括0个)。
迭代解压语法的几个应用场景:
比如:
s = 'hello'a, b, c, d, e = sprint(a, b, c, d, e)
# 输出结果:h e l l o
record = ('ACME', 50, 123.45, (12, 18, 2012))name, *_, (*_, year) = recordprint(name, year)
"""
输出结果:
ACME 2012
"""
records = [('foo', 1, 2),('bar', 'hello'),('foo', 3, 4),]def print_foo(x, y):print('foo', x, y)def print_bar(s):print('bar', s)for tag, *args in records:if tag == 'foo':print_foo(*args)elif tag == 'bar':print_bar(*args)
"""
输出结果:
foo 1 2
bar hello
foo 3 4
"""
line = 'nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false'uname, *field, homedir, sh = line.split(':')print(uname, homedir, sh)
"""
输出结果:
nobody /var/empty /usr/bin/false
"""
看完上述内容,你们对Python解压可迭代对象赋值给多个变量的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网Python频道,感谢大家的支持。
--结束END--
本文标题: Python解压可迭代对象赋值给多个变量的示例分析
本文链接: https://www.lsjlt.com/news/301237.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0