美文网首页
Python中的 ‘*表达式’

Python中的 ‘*表达式’

作者: HavenYoung | 来源:发表于2018-07-16 20:23 被阅读0次

    一、‘*表达式’的作用

    在分解元素的基础上,当分解元素的个数或者被分解对象中的元素个数不确定时,通过‘*表达式’来完成分解。

    num = ['1', '2', '3', '4', '5', '6', '7']
    st, nd, *th = num
    print(st)
    print(nd)
    print(th)
    

    结果:

    1
    2
    ['3', '4', '5', '6', '7']
    

    如代码和运行结果可知,st和nd从num中各分得了一个元素,th则分得了剩余的所有元素。并且这里的分配按照从左到右的顺序进行。注意:这里的th变量变成了一个列表。且num为元组时也可以对其进行分解。

    二、‘*表达式’的简单使用

    简单的获取不同位置的多个数据

    #舍去最后两个元素
    def dorp_middle_last(grades):
        *first, middle, last = grades
        return first
    
    #舍弃第一个和最后一个元素
    def drop_first_last(grades):
        first, *middle, last = grades
        return middle
    
    #舍弃前两个元素
    def drop_first_middle(grades):
        first, middle, *last = grades
        return last
    
    grades = ['1', '2', '3', '4', '5', '6', '7']
    print(dorp_middle_last(grades))
    print(drop_first_last(grades))
    print(drop_first_middle(grades))
    

    结果:

    ['1', '2', '3', '4', '5']
    ['2', '3', '4', '5', '6']
    ['3', '4', '5', '6', '7']
    

    三、‘*表达式’在字典中的使用

    当我们把num变成一个字典类型的变量时,用“一”中的方法对其进行分解,结果会怎样?

    num = {'1' : 'one', '2' : 'two', '3' : 'three', '4' : 'four', '5' :'five'}
    st, nd, *th = num
    print(st)
    print(nd)
    print(th)
    

    结果:

    1
    2
    ['3', '4', '5']
    

    注意:这里分解出来的元素不再是字典类型!
    特别的当num为集合时,每次分解时得到元素都不一样,并且顺序不定。

    num = {'1', '2', '3', '4', '5', '6', '7'}
    st, nd, *th = num
    print(st)
    print(nd)
    print(th)
    

    结果:

    3
    2
    ['6', '7', '4', '5', '1']
    

    本文仅作为学习讨论使用,如有错误,欢迎指出、讨论。

    相关文章

      网友评论

          本文标题:Python中的 ‘*表达式’

          本文链接:https://www.haomeiwen.com/subject/tatipftx.html