Python怎样解压可迭代对象的元素并赋值
Admin 2022-06-28 群英技术资讯 1258 次浏览
这篇文章主要讲解了“Python怎样解压可迭代对象的元素并赋值”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。现在有一个包含N个元素的可迭代对象,怎样把它里面的元素解压后同时赋值给N个变量?怎样同时赋值给M个变量(M<N)?
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
当变量的个数少于可迭代对象元素的个数时,程序会抛出ValueError。这时,可以用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, d, e)
# 输出结果:h e l l o
record = ('ACME', 50, 123.45, (12, 18, 2012))
name, *_, (*_, year) = record
print(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
"""
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
tansforms功能类似于在计算机视觉流程里的图像预处理部分的数据增强,接下来通过代码介绍下Pytorch使用transforms的详细过程,感兴趣的朋友一起看看吧
大家好,本篇文章主要讲的是Python海龟绘图之绘制趣味简笔画,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
本篇文章给大家带来了关于Python的相关知识,其中主要为大家介绍了Python遗传算法Geatpy工具箱使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,下面一起来看一下。
数据分析过程中,需要对获取到的数据进行分析,往往第一步就是导入数据。导入数据有很多方式,不同的数据文件需要用到不同的导入方式,相同的文件也会有几种不同的导入方式。下面总结几种常用的文件导入方法
这篇文章主要介绍了python 中[0]*2与0*2的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008