国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python 星號(*)的多種用途

瀏覽:2日期:2022-07-10 15:15:55

結論

概括的來說,就是對修飾的變量進行拆分, 對修飾的形式參數進行參數聚集。單*號,將被修飾的變量按元素方式拆分, 對修飾的形式參數進行參數聚集。雙**號,將被修飾的變量按鍵值對進行拆分, 對修飾的形式參數進行參數聚集。

修飾實例變量時

作用: 講被修飾的實例變量或者可迭代對象進行拆分

def func3(a, b, c): print('param a is {}, param b is {}, param c is {}'.format(a, b, c))if __name__ == ’__main__’: arr1 = [1, 2, 3] print(arr1, sep=’t’) # [1, 2, 3]t 正常輸出 print(*arr1, sep=’t’) # 1t2t3 每個數字中間以t分割 arr2 = [[1, 2, 3], [3, 4, 5], [5, 6, 7]] print(list(zip(*arr2))) # [(1, 3, 5), (2, 4, 6), (3, 5, 7)] 二維數組的行轉列 dictionary = {’a’: 1, ’b’: 2, ’c’: 3} print(dictionary, sep=’t’) # {’a’: 1, ’b’: 2, ’c’: 3}t 正常輸出 print(*dictionary, sep=’t’) # atbtct 每個字母中間以t分割 print(func3(**dictionary)) # param a is 1, param b is 2, param c is 3

比較使用和不使用*號后產生的結果就可以發現,單*號將可迭代對象進行了拆分,按單個元素方式依次將數據傳進方法。配合其他方法使用可以優雅的完成矩陣的行轉列操作。

雙**號的使用,是將變量對象拆分成鍵值對的形式,所以只有dict類型可以使用。注意上面的func3,他需要三個形參,但是我們只傳入**dict_obj, 就完成了功能。

可迭代對象有:list, dict, tuple, generator, iterator

出現在方法的形式參數位置

作用: 放在參數列表的末尾, 作為不定長的參數列表的形參接受對象。 (可以類比Java的可變參數列表)

def func1(*args): print('type', type(args)) # type <class ’tuple’> print('all arguments: ', args) # all arguments: (1, 2, 3) print('second argument: ', args[1]) # second argument: 2def func2(**kw): print('type', type(kw)) # type <class ’dict’> print('all arguments: ', kw) # all arguments: {’a’: 1, ’b’: 2, ’c’: 3} print('second argument: ', kw[’a’]) # second argument: 1if __name__ == ’__main__’: a, b, c = 1, 2, 3 func1(a, b, c) func2(a=a, b=b, c=c)

盡管函數func1的形參只有一個,但被傳遞三個參數,程序還是可以正常運行。因為*args將三個參數以tuple形式存儲,作為一個整體傳遞給方法func1。

同理,func2的**kw形參將傳入的三個參數壓成一個dict進行使用。

具體實驗代碼可以通過Github獲得。

以上就是python 星號(*)的多種用途的詳細內容,更多關于python 星號(*)的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 翁牛特旗| 望都县| 仁化县| 香河县| 随州市| 旅游| 桓台县| 静海县| 曲沃县| 福贡县| 常德市| 临夏县| 深水埗区| 高陵县| 兰西县| 遂宁市| 井陉县| 馆陶县| 筠连县| 乳山市| 蒙自县| 华安县| 甘孜县| 靖边县| 塔河县| 南汇区| 沾化县| 榆树市| 武威市| 清涧县| 贡觉县| 神农架林区| 修文县| 江陵县| 金华市| 中超| 工布江达县| 理塘县| 康马县| 克什克腾旗| 报价|