zoukankan      html  css  js  c++  java
  • 序列解包(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}
    >>>

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

    从csdn搬家过来的可能没有图片,原地址https://blog.csdn.net/weixin_38091140
  • 相关阅读:
    java中过滤器和拦截器的区别
    Java中内部类和静态内部类的区别
    SpringBoot启动的时候切换配置文件命令
    centos7安装Subversion
    关于curl_setopt参数的记录
    Linux Samba文件共享服务,安装与案例配置
    CentOS7源码安装Redis5.0.4非关系型数据库
    Centos7部署LAMP平台之架构之路
    Centos7安装及配置DHCP服务
    CentOS 7源码安装MYSQL-5.6
  • 原文地址:https://www.cnblogs.com/Apy-0816/p/11100248.html
Copyright © 2011-2022 走看看