8個超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()

創(chuàng)新互聯(lián)建站為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設計服務,主要包括成都網(wǎng)站制作、網(wǎng)站建設、重慶APP開發(fā)公司、微信平臺小程序開發(fā)、宣傳片制作、LOGO設計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗豐富的經(jīng)驗,可以確保每一個作品的質(zhì)量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內(nèi)置函數(shù)
1、set()
當需要對一個列表進行去重操作的時候,set()函數(shù)就派上用場了。
用于創(chuàng)建一個集合,集合里的元素是無序且不重復的。集合對象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產(chǎn)生結果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達式,并且執(zhí)行。
3、sorted()在處理數(shù)據(jù)過程中,我們經(jīng)常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長度來排序:
根據(jù)自定義規(guī)則,對元組構成的列表進行排序:
4、reversed()如果需要對序列的元素進行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進行大寫轉(zhuǎn)化操作。這個時候就可以使用map()函數(shù)。
map()會根據(jù)提供的函數(shù),對指定的序列做映射,最終返回迭代器。也就是說map()函數(shù)會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數(shù)字作平方處理:
6、reduce()前面說到對列表里的每個數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數(shù)。
reduce()會對參數(shù)序列中元素進行累積。第一、第二個元素先進行函數(shù)操作,生成的結果再和第三個元素進行函數(shù)操作,以此類推,最終生成所有元素累積運算的結果。再舉個例子,將字母連接成字符串。
你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來講,是因為它太重要了。
7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?
filter()函數(shù)輕松完成了任務,它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個元素映射到函數(shù),最終返回結果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應的順序號,我們用enumerate()函數(shù)做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數(shù)用于對序列里的元素進行順序標注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進行標注,返回每個字母和其索引。
本文Python 操作 MySQL 數(shù)據(jù)庫需要是使用到 PyMySQL 驅(qū)動
Python 操作 MySQL 前提是要安裝好 MySQL 數(shù)據(jù)庫并能正常連接使用,安裝步驟詳見下文。
注意: 安裝過程我們需要通過開啟管理員權限來安裝,否則會由于權限不足導致無法安裝。
首先需要先下載 MySQL 安裝包, 官網(wǎng)下載地址 下載對應版本即可,或直接在網(wǎng)上拉取并安裝:
權限設置:
初始化 MySQL:
啟動 MySQL:
查看 MySQL 運行狀態(tài):
Mysql安裝成功后,默認的root用戶密碼為空,你可以使用以下命令來創(chuàng)建root用戶的密碼:
登陸:
創(chuàng)建數(shù)據(jù)庫:
查看數(shù)據(jù)庫:
PyMySQL 模塊使用 pip命令進行安裝:
假如系統(tǒng)不支持 pip 命令,可以使用以下方式安裝:
pymysql .connect 函數(shù):連接上數(shù)據(jù)庫
輸出結果顯示如下:表面數(shù)據(jù)庫連接成功
使用 pymysql 的 connect() 方法連接數(shù)據(jù)庫,connect 參數(shù)解釋如下:
conn.cursor():獲取游標
如果要操作數(shù)據(jù)庫,光連接數(shù)據(jù)是不夠的,咱們必須拿到操作數(shù)據(jù)庫的游標,才能進行后續(xù)的操作,游標的主要作用是用來接收數(shù)據(jù)庫操作后的返回結果,比如讀取數(shù)據(jù)、添加數(shù)據(jù)。通過獲取到的數(shù)據(jù)庫連接實例 conn 下的 cursor() 方法來創(chuàng)建游標,實例如下:
輸出結果為:
cursor 返回一個游標實例對象,其中包含了很多操作數(shù)據(jù)的方法,如執(zhí)行sql語句,sql 執(zhí)行命令: execute() 和 executemany()
execute(query,args=None):
executemany(query,args=None):
其他游標對象如下表:
完整數(shù)據(jù)庫連接操作實例如下:
以上結果輸出為:
創(chuàng)建表代碼如下:
如下所示數(shù)據(jù)庫表創(chuàng)建成功:
插入數(shù)據(jù)實現(xiàn)代碼:
插入數(shù)據(jù)結果:
Python查詢Mysql使用 fetchone() 方法獲取單條數(shù)據(jù), 使用fetchall() 方法獲取多條數(shù)據(jù)。
查詢數(shù)據(jù)代碼如下:
輸出結果:
DB API中定義了一些數(shù)據(jù)庫操作的錯誤及異常,下表列出了這些錯誤和異常:
本文給大家介紹 Python 如何連接 Mysql 進行數(shù)據(jù)的增刪改查操作,文章通過簡潔的代碼方式進行示例演示,給使用 Python 操作 Mysql 的工程師提供支撐。
作者:小風寒吶
鏈接:
來源:知乎
著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處。
首先我們讀取圖庫中所有圖片的名稱,保存在fileNames中。然后讀取Data.csv中所有數(shù)據(jù)。
提取出Data.csv的最后一列(一共10002列,第10001列說明該數(shù)字是什么數(shù)字,第10002列是圖片的名稱),也就是數(shù)據(jù)庫中存儲的所有圖片的名稱,存儲在item中。
將新加入圖庫的圖片名稱保存在newFileNames中。如果Data.csv為空,那么就直接令newFileNames
=
fileNames。也就是說如果數(shù)據(jù)庫中什么也沒有,那么圖庫中所有圖片都是新加入的。
如果Data.csv不為空,那么就將item里面的內(nèi)容與fileNames的內(nèi)容比較,如果出現(xiàn)了fileNames里面有的名稱item中沒有,那么就將這些名稱放進newFileNames中。如果item里有的名稱fileNames中沒有,那就不管。
也就是說,我令我們的數(shù)據(jù)庫只進不出。
現(xiàn)在我們得到了新加入圖庫的圖片的名稱newFileNames。
將newFileNames中的名稱的圖片帶入上一文中函數(shù)GetTrainPicture進行處理,得到了一個nx10001的矩陣,每一行代表一個新加入的圖片,前10000列是圖片向量,第10001列是該圖片的數(shù)字,保存在pic中。
網(wǎng)頁標題:python數(shù)據(jù)入庫函數(shù),python中怎么導入庫
本文地址:http://chinadenli.net/article28/dsegjjp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、網(wǎng)站設計公司、關鍵詞優(yōu)化、小程序開發(fā)、網(wǎng)站收錄、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)