今天,我将和大家谈谈Python解压缩可迭代对象并将其分配给多个变量的示例分析,很多人可能不太理解。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。
问题描述
现在有一个包含n个元素的可迭代对象。如何解压其中的元素,同时赋给n个变量?如何同时给m个变量(MN)赋值?
解决方案
1.将N个元素赋值给N个变量,可以通过如下一个简单的赋值语句实现。
p=[4,5]
x,y=p
打印(x,y)
#输出结果:45
数据=['测试',1,3.14,(2021,12,1)]
a、b、c、d=数据
印刷品(a、b、c、d)
#输出结果:测试13.14(2021年12月1日)
a,b,c,(年,月,日)=数据
打印(a、b、c、年、月、日)
#输出结果:Test13.142021121
2.如何将N个元素赋值给M个变量(MN)?
当变量个数小于可迭代对象元素个数时,程序会抛出ValueError。这时候可以通过Python的星号表达式来解决。
数据=[1,2,3,4,5]
a,b,*c,d=数据
印刷品(a、b、c、d)
#输出结果:12[3,4]5需要注意的是,上面提取的C变量总是类型列表,与C的元素个数无关(包括0)。
00-1010迭代解压缩语法的几种应用场景:
例如00-1010:
s='你好'
a,b,c,d,e=s
打印(a、b、c、d、e)#输出结果:h、e、l、o
总结
记录=('ACME ',50,123.45,(12,18,2012))
名称,*_,(*_,年份)=记录
打印(姓名、年份)'''
输出:
ACME 2012
'''
1.任何可迭代对象都可以实现这种解压赋值,包括列表、元组、字符串、文件对象、迭代器和生成器。
记录=[
(' foo ',1,2),
(“酒吧”,“你好”),
(' foo ',3,4),
]
defprint_foo(x,y):
打印(' foo ',x,y)
defprint _ bar :
打印(条形)
福塔格,* argsinrecords:
iftag=='foo':
print_foo(*args)
eliftag=='bar':
print_bar(*args)' ' '
输出:
foo 1 2
酒吧你好
foo 3 4
'''
2.有时候,你想解压一些元素后丢弃它们,可以使用一个普通的废弃名称,比如_或者ign(ignore)。
行=' nobody : * :-2:-2: unprivilegeduser :/var/empty :/usr/bin/false '
uname,*field,homedir,sh=line.split(': ')
打印(uname,homedir,sh)' ' '
输出:
无人/var/空/usr/bin/false
'''
看完上面的内容,你对Python解压可迭代对象并分配给多个变量的示例分析有了更好的理解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/134017.html