序列解包(for x,y in zip(keys, values):)详解。

序列解包是一个非常重要和常用的一个功能,使用序列解包可以用非常简洁的方法完成复杂的功能。增强代码的可读性,减少代码量

1.使用序列解包对多个变量同时进行赋值。

a, b, c = 1, 2, 3
print(a, b, c)

test_tuple = (False, 3.5, 'test')
d, e, f = test_tuple
print(d, e, f)

x, y, z = map(str, range(3))

print(x, y, z)

输出结果分别为:

1 2 3
False 3.5 test
0 1 2

2.序列解包也可以适用于列表字典呢,字典的话默认是对“key”进行操作, 如需对“key”-“value”进行操作则需要使用字典的items()方法进行操作。“value”进行操作的话就使用values()进行操作。

#列表进行解包
a = [1, 2, 3, 5, 6]
b, c, d, f, g = a
print(b, c, d, f, g)

print('---------------------------')

#字典进行解包
test_dicts = {'a': 'x', 'b': 1, 'c': 3}

q, w, e = test_dicts
r, t, y = test_dicts.items()
i, o, p = test_dicts.values()

print(q, w, e)
print(r, y, t)
print(i, o, p)

输出:

1 2 3 5 6
---------------------------
a b c
('a', 'x') ('c', 3) ('b', 1)
x 1 3
 

3,还可以用序列解包同时遍历多个序列

list_1 = [1, 2, 3, 4]
list_2 = ['a', 'b', 'c']

for x, y in zip(list_1, list_2):
    print(x, y)

 

4,使用内置函数enumerate()返回的的迭代对象进行遍历时的序列解包


# 使用enumerate进行遍历(使用.format()进行格式化)
x = ['a', 'b', 'c']
for i, v in enumerate(x):
    print('遍历出来的值的下标是{0},值是{1}'.format(i, v))

输出:

遍历出来的值的下标是0,值是a
遍历出来的值的下标是1,值是b
遍历出来的值的下标是2,值是c

 

5,还支持在实参面前加上一个(*)号进行序列解包,从而实现将序列中的元素值依次传递给相同数量的形参。

>>> print(*[1,2,3,4],4,*(5,6))
1 2 3 4 4 5 6
>>> *range(4),4
(0, 1, 2, 3, 4)
>>> {*range(4),4,(5,6,7,8,9)}
{0, 1, 2, 3, 4, (5, 6, 7, 8, 9)}
>>> {*range(4),4,*(5,6,7,8,9)}
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> {'x':1, **{'y':10}}
{'x': 1, 'y': 10}
>>>

这就是这期的序列解包了。

转载于:https://www.cnblogs.com/Apy-0816/p/11100248.html

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值