python星號(hào)(*)和雙星號(hào)(**)?函數(shù)動(dòng)態(tài)參數(shù)匹配及解包操作方法
1.乘法和冪運(yùn)算符
● 單個(gè) * 用于乘法運(yùn)算
● 兩個(gè) ** 表示冪運(yùn)算
>>> 2*3 >>> 6 >>> 2**3 >>> 8
2.函數(shù)接收數(shù)量不固定的入?yún)?/h2>
在定義函數(shù)時(shí),我們可以定義一個(gè)以一個(gè)或兩個(gè)星號(hào)為前綴的參數(shù),以捕獲不限制數(shù)量的參數(shù)輸入??偨Y(jié)如下:
● 以 一個(gè) * 為前綴的參數(shù)可以將任意數(shù)量的參數(shù)以元組形式傳入
● 以兩個(gè) ** 為前綴的參數(shù)可以將任意數(shù)量的參數(shù)以字典形式傳入
3.限制函數(shù)入?yún)H以關(guān)鍵字形式輸入
def genius(age, *, first_name, last_name): print(first_name, last_name, 'is', age) genius(28, first_name='Li', last_name='Bai') # Li Bai is 28
上述代碼采用了星號(hào)* 限制了星號(hào)之后的參數(shù)必須采用關(guān)鍵字形式來(lái)調(diào)用上述函數(shù)。
4. 可迭代對(duì)象解包操作
使用星號(hào)* 來(lái)解包可迭代對(duì)象。
A = [1, 2, 3] B = (4, 5, 6) C = {7, 8, 9} L = [*A, *B, *C] print(L) # [1, 2, 3, 4, 5, 6, 8, 9, 7]
如果我們利用一個(gè)*作為dict 的前綴,它的key 將被解包;如果我們使用雙星號(hào)** 作為前綴,其value 將被解包;此時(shí)我們必須顯示使用key 來(lái)接收解包后的value 。
D = {'first': 1, 'second': 2, 'third': 3} print(*D) # first second third # print(**D) # TypeError: 'first' is an invalid keyword argument for print() print('{first},{second},{third}'.format(**D)) # 1,2,3
5.擴(kuò)展可迭代對(duì)象解包
解包的語(yǔ)法。
L = [1, 2, 3, 4, 5, 6, 7, 8] a, *b = L print(a) # 1 print(b) # [2, 3, 4, 5, 6, 7, 8]
到此這篇關(guān)于python星號(hào)(*)和雙星號(hào)(**) 函數(shù)動(dòng)態(tài)參數(shù)匹配及解包操作的文章就介紹到這了,更多相關(guān)python星號(hào)(*)和雙星號(hào)(**)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python傳參時(shí)一個(gè)星號(hào)和兩個(gè)星號(hào)的區(qū)別小結(jié)
- 一文帶你掌握python中*星號(hào)的用法
- Python 中星號(hào)(*)的用法小結(jié)
- Python中的星號(hào)*還能這么用你知道嗎
- Python中星號(hào)的五種用法小結(jié)
- Python中你所不知道的星號(hào)?*?用法
- Python 帶星號(hào)(* 或 **)的函數(shù)參數(shù)詳解
- python 星號(hào)(*)的多種用途
- Python星號(hào)*與**用法分析
- Python參數(shù)傳遞中雙星號(hào)(**)和單星號(hào)(*)是作用
相關(guān)文章
人工智能——K-Means聚類算法及Python實(shí)現(xiàn)
這篇文章主要介紹了人工智能——K-Means聚類算法及Python實(shí)現(xiàn),一個(gè)能夠找到我圈出的這?些點(diǎn)集的算法,就被稱為聚類算法,下面就來(lái)看看文章具體的介紹吧2022-01-01Python入門教程(十一)Python中的運(yùn)算符
這篇文章主要介紹了Python入門教程(十一)Python中的運(yùn)算符,Python是一門非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下2023-04-04Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過程解析
這篇文章主要介紹了Python urllib request模塊發(fā)送請(qǐng)求實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12導(dǎo)入tensorflow:ImportError: libcublas.so.9.0 報(bào)錯(cuò)
這篇文章主要介紹了導(dǎo)入tensorflow:ImportError: libcublas.so.9.0 報(bào)錯(cuò),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01pycharm?python代碼調(diào)試跳出for循環(huán)問題
這篇文章主要介紹了pycharm?python代碼調(diào)試跳出for循環(huán)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08