色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何通過星號編寫Python代碼的最佳方式

如意 ? 來源:百家號 ? 作者:讀芯術 ? 2020-07-01 09:58 ? 次閱讀

Python以句法簡單、簡潔而聞名,只需掌握簡單的英語就能理解其代碼。對初學者來說極具吸引力,它沒有聲明,沒有花哨的字符或者奇怪的句法。正因如此,Python才得以風靡全球。

除此之外,Python還具備一些很酷的特點,比如裝飾器和列表解析。這些特點確實能創造奇跡,但*也值得這一美名,小小字符能帶來翻天覆地的變化。

先從一個小技巧開始:

In [1]:

first_dict= {‘key1’: ‘hello’, ‘key2’: ‘world’}

second_dict= {‘key3’: ‘whats’, ‘key4’: ‘up’}

In [2]:

#joins the dicts

combined_dict= {**first_dict, **second_dict}

combined_dict

Out[2]:

{‘key1’: ‘hello’, ‘key2’: ‘world’, ‘key3’:‘whats’, ‘key4’: ‘up’}

In [ ]:

這是合并字典的超簡單方法!你能明顯看出,我僅用了幾個星號就將字典結合了起來,我接下來會一一解釋。

星號在哪些地方發揮作用?

除了眾所周知的乘法作用,星號還能讓你輕松完成一些重要任務,例如解包。一般來說,你可以使用星號來解包可迭代對象,也能對雙向可迭代對象(就像字典一樣)進行雙重解包。

In [7]:

# unpackingan iterable

[xfor x inrange(100)] == [*range(100)]

Out[7]:

True

In [8]:

#unpkacing dict keys

d = {‘key1’: ‘A’}

list(d.keys()) == [*d]

Out[8]:

True

In [9]:

#unpacking whole dict

d == {**d}

Out[9]:

True

解包的力量

不要破壞別人的代碼

大家也越來越理解這一點,但仍然有人沒有遵守。開發者寫出的每一個函數都有其特征。如果函數被改變,那么所有基于你的代碼而撰寫的代碼都會被破壞。

我將介紹一種簡單的方法,你可以為自己的函數增添更多功能性,同時也不會破壞其向后兼容性,最后你會得到更多的模塊化代碼。

在你的代碼中輸入*args和**kwrags,它們會將所有輸入都解包進函數。單星號針對標準的可迭代對象,雙星號針對字典類的雙向可迭代對象,舉例說明:

In [1]:

defversion1(a, b):

print(a)

print(b)

In [2]:

version1(4,5)

4

5

In [3]:

#code breaks

version1(4,5,6)

---------------------------------------------------------------------------

TypeError Traceback(most recent call last)

《ipython-input-3-b632c039a799》 in《module》

1# code breaks

----》 2 version1(4,5,6)

TypeError: version1() takes 2 positionalarguments but 3 were given

In [4]:

defversion2(a, b, *args):

print(a)

print(b)

# new function.

if args:

for c in args:

print(c)

In [5]:

version2(1,2,3,4,5)

1

2

3

4

5

In [6]:

#code breaks

version2(1,2,3,4,5, Extra=10)

---------------------------------------------------------------------------

TypeError Traceback(most recent call last)

《ipython-input-6-748b0aef9e5d》in 《module》

1 # code breaks

----》 2 version2(1,2,3,4,5, Extra=10)

TypeError: version2() got an unexpectedkeyword argument ‘Extra’

In [7]:

defversion3(a, b , *args, **kwrags):

print(a)

print(b)

# new function.

if args:

for c in args:

print(c)

if kwrags:

for key, value inzip(kwrags.keys(), kwrags.values()):

print(key,‘:’, value)

In [8]:

version3(1,2,3,4,5, Extra=10)

1

2

3

4

5

Extra : 10

In [ ]:

工作代碼和破解代碼

這個例子展示了如何使用args和kwargs來接收之后的參數,并留到將來使用,同時也不會破壞你函數中原有的call函數。

星號是Python中很重要的一部分,但卻常常被我們忽略。事實上,我們平常沒有注意到的關鍵點還有很多,值得我們去一點點探索。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4816

    瀏覽量

    68873
  • python
    +關注

    關注

    56

    文章

    4805

    瀏覽量

    84928
  • 語法
    +關注

    關注

    0

    文章

    44

    瀏覽量

    9848
收藏 人收藏

    評論

    相關推薦

    5種Python實現方式詳解

    Python(CPython)將Python源碼編譯成CPython字節碼,再由虛擬機解釋執行這些字節碼。如果需要廣泛用到C編寫的第三方擴展,或讓大多數用戶都能直接使用你的Python
    發表于 05-22 15:52

    Python最佳學習路線

    Python最佳學習路線
    發表于 05-11 12:11

    python編寫條件分支的最佳實踐

    =user.address, **extra_args)當你編寫分支代碼時,請額外關注由分支產生的重復代碼塊,如果可以簡單的消滅它們,那就不要遲疑。4. 謹慎使用三元表達式三元表達式是 Pyt
    發表于 04-21 15:20

    python代碼示例之基于Python的日歷api調用代碼實例

    本文檔的主要內容詳細介紹的是python代碼示例之基于Python的日歷api調用代碼實例。
    發表于 09-06 14:25 ?42次下載
    <b class='flag-5'>python</b><b class='flag-5'>代碼</b>示例之基于<b class='flag-5'>Python</b>的日歷api調用<b class='flag-5'>代碼</b>實例

    7個Python調試通過代碼詳細資料分析

    "Python的應用十分廣泛,今天我們來分享7個Python實戰項目代碼,希望你有所收獲。
    的頭像 發表于 10-14 09:46 ?3480次閱讀

    python3編寫的人臉識別源代碼合集免費下載

    本文檔的主要內容詳細介紹的是python3編寫的人臉識別源代碼合集免費下載,有3個不同的代碼,分別是三種不同的算法。
    發表于 03-12 08:00 ?6次下載

    如何使用Warp在Python環境中編寫CUDA內核

      通常,實時物理模擬代碼是用低級 CUDA C ++編寫的,以獲得最佳性能。在這篇文章中,我們將介紹 NVIDIA Warp ,這是一個新的 Python 框架,可以輕松地用
    的頭像 發表于 04-02 16:15 ?2598次閱讀

    利用Python編寫簡單網絡爬蟲實例

    利用 Python編寫簡單網絡爬蟲實例2 實驗環境python版本:3.3.5(2.7下報錯
    發表于 02-24 11:05 ?14次下載

    優化Python代碼有哪些工具

    代碼。 1. Jupyter Notebook:這個交互式筆記本工具允許您在瀏覽器中編寫和運行Python代碼,并以文檔形式保存。Jupyter Notebook使得
    的頭像 發表于 07-24 09:28 ?1396次閱讀

    卷積神經網絡python代碼

    的卷積操作,將不同層次的特征進行提取,從而通過反向傳播算法不斷優化網絡權重,最終實現分類和預測等任務。 在本文中,我們將介紹如何使用Python實現卷積神經網絡,并詳細說明每一個步驟及其原理。 第一步:導入必要的庫 在開始編寫
    的頭像 發表于 08-21 16:41 ?1054次閱讀

    TinyDB :一個純Python編寫的輕量級數據庫

    TinyDB 是一個純 Python 編寫的輕量級數據庫,一共只有1800行代碼,沒有外部依賴項。 TinyDB的目標是降低小型 Python 應用程序使用數據庫的難度,對于一些簡單程
    的頭像 發表于 10-21 10:22 ?1037次閱讀

    python怎樣運行代碼

    討論Python代碼的運行方式,包括解釋器、交互式環境和命令行。 Python代碼可以通過兩種主
    的頭像 發表于 11-22 10:31 ?1381次閱讀

    python代碼寫完后點哪個運行

    當你完成了編寫Python代碼后,你可以選擇多種方式來運行它。下面是幾種常見的運行代碼方式
    的頭像 發表于 11-24 09:28 ?5673次閱讀

    python軟件怎么運行代碼

    理解的機器代碼。 在本文中,我們將詳細介紹如何運行Python代碼。我們將探討以下幾個方面:安裝Python,設置環境變量,選擇一個集成開發環境(IDE)或文本編輯器,
    的頭像 發表于 11-28 16:02 ?945次閱讀

    python軟件IDLE怎么打多行代碼

    用于編寫、編輯和運行Python代碼的編輯器窗口。在IDLE中編寫多行代碼有幾種方法可以實現。 使用括號與換行符: 在IDLE中
    的頭像 發表于 11-29 15:00 ?4169次閱讀
    主站蜘蛛池模板: 无遮挡午夜男女XX00动态| 欧美日韩1区| av天堂网站avtt2017| 亚洲 成人网| 欧美乱妇狂野欧美在线视频| 国产亚洲欧美在线中文BT天堂网| www.av色| 有人在线观看的视频吗免费| 三级网站视频| 欧美videosgratis杂交| 久久re视频这里精品青| 国产树林野战在线播放| 姑娘视频日本在线播放| GAY空少被体育生开菊| 在线精彩视频在线观看免费| 亚洲 国产 日韩 欧美 在线| 日本吃孕妇奶水免费观看| 免费高清毛片| 久草热在线| 国产午夜精品理论片免费观看| 北条麻妃快播| adc影院在线| 97久久精品视频| 在线免费观看毛片| 亚洲中文字幕日本在线观看 | 精品第一国产综合精品蜜芽| 国产精品97久久久久久AV色戒| xxx日本hd| rio 快播| www.免费视频| av无码在线日本天堂| 97视频免费上传播放| 2020最新国产自产精品| 在线电影一区二区| 在线亚洲黄色| 607080老太太AW| 6080yy 久久 亚洲 日本| 97超碰免费人妻中文| 竹菊精品久久久久久久99蜜桃| 影音先锋av333资源网| 亚洲男女羞羞无遮挡久久丫|