1、元組拆包(元組解包、迭代解包)python
元組拆包能夠應用到任何可迭代對象上(任何迭代對象),被可迭代對象中的元素數量必需要跟接受這些元素的元組的空檔數一致。也可使用用 * 來表示忽略多餘的元素。函數
通常的迭代對象分爲:元組,列表,字典,字符串等。若是有一些不能明確的對象,能夠經過如下方式進行判斷,是否爲可迭代。spa
一、被迭代元素數量和接受元素的參數數量一致對象
二、數量不一致時,使用*號忽略多餘的元素blog
三、嵌套元組字符串
四、使用佔位符 _ im
2、python拆包命名
*args和 **kwargs是在python的代碼中常常用到的兩個參數,初學者對這兩個參數的理解可能僅僅限於*args是用於接收多餘的未命名參數,**kwargs用於接收實參中的命名參數,其中args是一個元組類型,而kwargs是一個字典類型的數據。 其實這兩個參數還涉及到了python中的一個重要的知識點:拆包數據
一、*argsdb
理解這段代碼須要把握住下面幾點:
1.形參中的*args其實真正接收數據的args,它是一個元組,把傳進來的數據放在了args這個元組中。
2. 函數體裏的args依然是那個元組,可是*args的含義就是把元組中的數據進行拆包,也就是把元組中的數據拆成單個數據。
3. 對於args這個元組,若是不對其進行解包,就將其做爲實參傳給其它以*args做爲形參的函數時,args這個元組會看看做一個總體,做爲一個類型爲元組的數據傳入。
2、**kwargs