美文网首页
编程语言基础python之序列解包和打包

编程语言基础python之序列解包和打包

作者: 土卡拉 | 来源:发表于2019-03-18 02:04 被阅读0次

    python中序列类型有可变的列表、字典、集合和不可变的元组、字符串。
    Python中一次给多个变量赋值的方法,称为序列解包,python中解包是自动完成的,所有可迭代对象都可以进行解包。(字典较为特殊:字典只会把key值取出,value去掉)

    1、 python中的交换变量实际是解包的过程
    如:a = 1
    b = 2
    a, b = b, a
    则: a = 2 , b = 1

    2、如果在解包的过程中左边变量的个数不等于右边可迭代对象中元素的个数,在python3中是在某一个变量前加一个,这个可以放在任意位置,如果放在中间,解释器会对没有的变量进行匹配,剩余元素全部匹配给带的变量。
    a, b,
    c = [1,2,3,4] ==>
    a = 1 , b = 2 , c = [3, 4]

    3、函数调用时,可以用 * 或者 ** 解包可迭代对象,作为参数传递

    • func函数中定义了3个形参参数,调用该函数时你可以传入3个实参,此外你也可以传入包括一个包含3个元素的可迭代对象,用进行解包。
      a = ['1', '2', '3']
      def func(a, b, c):
      print(a, b, c)
      func(
      a)
      1 2 3

    • 在可迭代对象为字典时,一个号传入的实参为key值,两个号时传入的实参为value值。
      d = {'a': 1, 'b': 2, 'c': 3}
      def func(a, b, c):
      print(a, b, c)
      func(
      d)
      a b c
      and
      d = {'a': 1, 'b': 2, 'c': 3}
      def func(a, b, c):
      print(a, b, c)
      func(**d)
      1 2 3

    如果说python中序列解包是将序列的值分给多个变量,那个python的打包就是将多个值放入某个序列类型中。

    相关文章

      网友评论

          本文标题:编程语言基础python之序列解包和打包

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