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

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

3天內(nèi)不再提示

python的這些騷操作,你都了解了嗎?

lviY_AI_shequ ? 來源:數(shù)據(jù)科學雜談 ? 2020-05-12 09:40 ? 次閱讀

隨著深度學習機器學習等技術(shù)的火熱發(fā)展,python 作為一種面向?qū)ο蟮膭討B(tài)類型語言也跟著火了起來。不少計算機科班出身的同學,在大學期間學習的多是 C++java,雖然轉(zhuǎn)向 Python 難度并不大,但是有些 Python 使用的小技巧,由于受限于 C++和 java 思維的限制,可能不會往那方面去想(畢竟當我知道了一些 Python 的技巧之后,直接驚嘆“臥槽,還能這樣搞?!”)

元素互換

之前,我們在給 a 和 b 交換值時,通常的操作是:

a = 10b = 5temp = aa = bb = temp

Python 將這一操作簡單化了

a = 10b = 5a,b = b,a

列表解析

列表解析是 Python 迭代機制的一種騷操作。有這樣一個任務,給定一個由正整數(shù)組成的 list,然后刪除里面的偶數(shù)。比如a = [1,2,3,4,5,6,8],注意這里我很騷的取了[1,2,3,4,5,6,8]而不是[1,2,3,4,5,6,7]。你會怎么做?

a = [1,2,3,4,5,6,8]for item in a: if item%2==0: a.remove(item)

輸出是[1,3,5,8],并沒有成功,是不是?如果你拿[1,2,3,4,5,6,7]作為例子,返回的結(jié)果確實是你想要的結(jié)果,但是那只是巧了。

python 怎么做呢?

a = [1,2,3,4,5,6,8]a = [item for item in a if item%2 != 0]

是不是騷的很?

Counter

from collections import Countera = ['a', 'a', 'a', 'b', 'b', 'c']ptiny(dict(Counter(a)))

輸出為:

{'a': 3, 'b': 2, 'c': 1}

Counter 可以幫助我們自動的去統(tǒng)計一個 list 中各個元素的個數(shù)。這個在哪里常用呢?在我們 NLP 中統(tǒng)計詞頻時會經(jīng)常用到,至少筆者是喜歡用這個函數(shù)的。

zip 函數(shù)

先上代碼:

a = [1,2,3]b = ['a','b','c']for x, y in zip(a,b): print (x, y)

輸出為

1 a2 b3 c

這個有什么用呢?在用 Python 做深度學習或機器學習時,需要構(gòu)造訓練樣本和標簽,那么我們有時可能會逐條獲取一條訓練數(shù)據(jù),通過迭代 zip,就能一條一條的成對取出數(shù)據(jù)了。當然了,zip()中可以添加任意多個可迭代的元素,不僅僅限于例子中的兩個。

exec

這是我接觸 Python 以來,見到的最騷最騷的操作了,而且是我在學習 java 時就夢寐以求的操作:我希望我能動態(tài)輸入一段代碼(字符串),然后程序可以運行之。學過 java 的人都知道,這是不行的,但是尼瑪 python 就行。

code = """from collections import Countera = ['a', 'a', 'a', 'b', 'b', 'c']print(dict(Counter(a)))"""exec(code)

大家可以試一下,真的可以。騷出天際了。

當然了,你的確可以通過動態(tài)輸入的方式,讓其運行字符串代碼,比如:

code = input()

然后你輸入from collections import Counter; a = ['a', 'a', 'a', 'b', 'b', 'c']; print(dict(Counter(a)))輸入的字符串中,每一句代碼之間用分號;分割,這一點和 java 們很像。然后再運行

exec(code)

會得到同樣的結(jié)果。這個操作大家在用 python 做科學計算的時候,可能用不到,但是當你用 python 寫項目的時候,可能就能派上用場了。

怎么樣,python 的這些騷操作,你都了解了嗎?

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

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73811
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8438

    瀏覽量

    132970
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    84975

原文標題:騷操作又來了,實用的python“奇技淫巧”

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用Python實現(xiàn)xgboost教程

    使用Python實現(xiàn)XGBoost模型通常涉及以下幾個步驟:數(shù)據(jù)準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?371次閱讀

    電磁兼容的這些問題,考慮到了嗎?(下)

    性?為了確保電子設(shè)備的電磁兼容性符合要求,需進行相關(guān)的測試。這些測試包括傳導和輻射發(fā)射測試、傳導和輻射抗擾度測試等。這些測試需在專業(yè)的電磁兼容實驗室中進行,以確保測試結(jié)
    的頭像 發(fā)表于 01-16 11:39 ?179次閱讀
    電磁兼容的<b class='flag-5'>這些</b>問題,<b class='flag-5'>你</b><b class='flag-5'>都</b>考慮到<b class='flag-5'>了嗎</b>?(下)

    電磁兼容的這些問題,考慮到了嗎?(上)

    導讀隨著電子設(shè)備的廣泛使用,電磁兼容性問題愈發(fā)關(guān)鍵。本文將深入解析開發(fā)生產(chǎn)電子設(shè)備時需關(guān)注的電磁兼容性要點,并結(jié)合案例分析,助你全面了解如何確保電子設(shè)備在復雜電磁環(huán)境中的穩(wěn)定運行。在電子設(shè)備日益普及
    的頭像 發(fā)表于 01-14 11:39 ?201次閱讀
    電磁兼容的<b class='flag-5'>這些</b>問題,<b class='flag-5'>你</b><b class='flag-5'>都</b>考慮到<b class='flag-5'>了嗎</b>?(上)

    有刷電機概述了解了多少?

    有刷電機是一種利用電刷和換向器來實現(xiàn)電流交換的電動機。其主要結(jié)構(gòu)包括定子、轉(zhuǎn)子、電刷和換向器。工作原理是基于電磁學中的法拉第電磁感應定律,通過電流在電磁線圈中形成磁場,進而驅(qū)動轉(zhuǎn)子旋轉(zhuǎn)。
    的頭像 發(fā)表于 12-27 16:00 ?233次閱讀
    有刷電機概述<b class='flag-5'>你</b><b class='flag-5'>了解了</b>多少?

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓編程更輕松、代碼更高效。這篇文章將帶你一一認識這些神器,讓的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?327次閱讀

    APM32F411板的python+pyocd命令行操作

    前段時間學習了一下如何使用pyocd配合APM32F411VCTINY板在命令行下給它進行各種操作,在使用一段時間后就想著:pyocd是基于python的,那是不是也可以使用python
    的頭像 發(fā)表于 10-18 16:21 ?404次閱讀
    APM32F411板的<b class='flag-5'>python</b>+pyocd命令行<b class='flag-5'>操作</b>

    認識貼片電阻嗎,對他了解多少?

    認識貼片電阻嗎,對他了解多少?
    的頭像 發(fā)表于 08-27 15:49 ?585次閱讀
    <b class='flag-5'>你</b>認識貼片電阻嗎,<b class='flag-5'>你</b>對他<b class='flag-5'>了解</b>多少?

    Python在AI中的應用實例

    Python在人工智能(AI)領(lǐng)域的應用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓練到高級的應用部署,Python扮演著至關(guān)重要的角色。以下將詳細探討Python在AI中的幾個關(guān)鍵應用
    的頭像 發(fā)表于 07-19 17:16 ?1315次閱讀

    如何實現(xiàn)Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,將會看到一些用 Python 實現(xiàn)文件復制的特殊
    的頭像 發(fā)表于 07-18 14:53 ?464次閱讀

    網(wǎng)線怎么選看完這篇了解了

    選擇網(wǎng)線時,需要綜合考慮多個因素以確保選擇到適合自己需求的網(wǎng)線。以下是一些關(guān)鍵的選擇要點: 線型與規(guī)格: 雙絞線:這是最常用的網(wǎng)線類型,用于傳輸數(shù)據(jù)。常見的規(guī)格有Cat5、Cat5e、Cat6、Cat6a和Cat7等。 Cat5e(超五類線):理論傳輸速率1000Mbps,通常適用于家庭和辦公場所。 Cat6(六類線):理論傳輸速率1Gbps,適用于需要更高速率的環(huán)境。 Cat6a(超六類線)和Cat7(七類線):具有更高的傳輸速度和更好的抗干擾性能,但價格也相應較高。 同軸電纜:主要用
    的頭像 發(fā)表于 07-03 10:07 ?973次閱讀

    MINIWARE的品牌故事,了解多少?

    作為易迪賽e-Design旗下的迷你智能工具創(chuàng)新品牌,MINIWARE以其獨特的設(shè)計理念和卓越的產(chǎn)品質(zhì)量,逐漸在市場上贏得了一席之地。但MINIWARE背后的品牌故事,了解多少呢?今天,讓我們一起
    的頭像 發(fā)表于 06-20 08:02 ?589次閱讀
    MINIWARE的品牌故事,<b class='flag-5'>你</b><b class='flag-5'>了解</b>多少?

    無人機反制領(lǐng)域的10個基礎(chǔ)問題,了解了嗎?|特信無人機反制

    隨著無人機技術(shù)的快速發(fā)展和普及,其在各行各業(yè)中的應用愈發(fā)廣泛。然而,無人機的濫用和非法活動也日漸增多,給社會安全帶來了嚴峻挑戰(zhàn)。無人機反制技術(shù)應運而生,成為維護公共安全和秩序的重要手段。本文特信無人機反制小編將帶你了解無人機反制領(lǐng)域的10個基礎(chǔ)問題,幫助你更好地理解和應用這一技術(shù)。
    的頭像 發(fā)表于 05-15 09:15 ?573次閱讀
    無人機反制領(lǐng)域的10個基礎(chǔ)問題,<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>了解了嗎</b>?|特信無人機反制

    傳感器認證大揭秘,這些標識認識嗎?

    我們經(jīng)常會在傳感器的包裝上看到這些標志(如下圖所示),在選擇傳感器時,用戶應優(yōu)先考慮帶有這些認證標識的產(chǎn)品,以確保傳感器能夠滿足應用需求并保障人員和設(shè)備的安全。明治傳感擁有齊全的產(chǎn)品認證體系,我們
    的頭像 發(fā)表于 04-12 08:24 ?1170次閱讀
    傳感器認證大揭秘,<b class='flag-5'>這些</b>標識<b class='flag-5'>你</b><b class='flag-5'>都</b>認識嗎?

    生活中的這些網(wǎng)絡傳輸介質(zhì),了解嗎?

    高度互聯(lián)的時代下,不管是日常的互聯(lián)網(wǎng)瀏覽,還是全球范圍內(nèi)的數(shù)據(jù)傳輸,離不開一個關(guān)鍵的組成部分:網(wǎng)絡傳輸介質(zhì)。
    的頭像 發(fā)表于 02-22 10:46 ?1456次閱讀
    生活中的<b class='flag-5'>這些</b>網(wǎng)絡傳輸介質(zhì),<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>了解</b>嗎?

    電抗器的這些特點知道嗎

    電抗器是一種用于電力系統(tǒng)中的重要設(shè)備,它可以用來改善電力質(zhì)量、穩(wěn)定電壓和提高系統(tǒng)的效率。下面薩頓斯(STS)和大家一起來了解電抗器的使用說明以及安裝要點。
    的頭像 發(fā)表于 01-30 11:36 ?750次閱讀
    電抗器的<b class='flag-5'>這些</b>特點<b class='flag-5'>你</b><b class='flag-5'>都</b>知道嗎