Python數(shù)據(jù)結(jié)構(gòu)列表
正則小練習(xí):匹配出以下字符串所有url,
import re def find_url(sentence, show_urls=None, delete_urls=None): r = re.compile( r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>???“”‘']))') url_list = r.findall(sentence) if show_urls == 1: for i in url_list: print(i[0]) if delete_urls == 1: for j in url_list: # sentence = sentence.replace(j[0], '<URL>') sentence = sentence.replace(j[0], '') return sentence return "匹配完成" if __name__ == '__main__': str1 = '你好哇 大佬 www.google.com' str2 = '哇 www.baidu.com 打不開(kāi)了' str3 = 'python網(wǎng)址在哪兒 https://www.python.com 找到了'
對(duì)于字符串的基礎(chǔ)使用基本已經(jīng)闡述完畢!需要復(fù)雜使用的還需項(xiàng)目實(shí)戰(zhàn)以及向大佬們請(qǐng)教。后面的幾篇文章還是想闡述關(guān)于數(shù)據(jù)結(jié)構(gòu)的一些基礎(chǔ)使用。字符串可以看作為只存儲(chǔ)字符序列的數(shù)據(jù)結(jié)構(gòu),同樣為了方便眾多使用者的理念,Python提供了幾個(gè)功能強(qiáng)大且高效的數(shù)據(jù)結(jié)構(gòu):列表、元組、字典以及集合。作為使用者的我們只需要組合使用即可。
在開(kāi)始數(shù)據(jù)結(jié)構(gòu)使用前,需要介紹一個(gè)Python的另一個(gè)內(nèi)置函數(shù):type(),該函數(shù)在我們需要了解值或變量的數(shù)據(jù)類型時(shí)極為方便。如下:type輸出結(jié)果中包含class 類,可以返回特定值和變量或者是否為模塊函數(shù)。在代碼調(diào)試過(guò)程中,該函數(shù)會(huì)起到很大的作用,例如在使用數(shù)據(jù)集合但并不知集合內(nèi)部的數(shù)據(jù)類型時(shí),可以使用type準(zhǔn)確的返回對(duì)象類型。
1 序列
在Python中,序列是一組按順序排列的值。Python 有 3 種內(nèi)置的序列類型:字符串、 元組和列表。
序列支持切片、索引,同時(shí)具備以下特征:
- 1 第一個(gè)正索引為零,指向左端;
- 2 第一個(gè)負(fù)索引為 -1,指向右端;
- 3 可使用切片表示法來(lái)復(fù)制子序列;
- 4 可使用 + 和 * 進(jìn)行拼接;
- 5 可使用函數(shù) len 計(jì)算其長(zhǎng)度,例如,
len(string)
返回序列 string 包含的元素?cái)?shù); - 6 表達(dá)式 x in string 檢查序列
string
是否包含元素 x 。
2 列表
在Python中,列表的元素不是固定不變的,而是可變的,也就是表示可在不復(fù)制的情況下,添加、刪除或修改列表元素。列表使用方括號(hào)將元素括起來(lái),里面的元素使用逗號(hào)分開(kāi),舉幾個(gè)簡(jiǎn)單示例:隨便定義一個(gè)num
列表,可以使用+和*拼接列表,也可以使用len()
獲取列表長(zhǎng)度,并且,同樣可以使用切片和索引方式來(lái)獲取列表中的子列表。
需要注意的是:列表可包含任何類型的值:數(shù)字、字符串甚至其他序列??樟斜碛?[] 表示,而只包含一個(gè)元素(x)的單元素列表寫做 [x] 。其訪問(wèn)方式與字符串的索引方式一樣,以num2為例,如下圖:列表索引從 0 開(kāi)始,第二個(gè)索引是 1,依此類推。當(dāng)然也可以從右向左進(jìn)行索引。
2.1 列表函數(shù)
Python針對(duì)列表也提供了十分強(qiáng)大的函數(shù),整理如下表所示:除count
返回值只返回一個(gè)數(shù)字之外,其他所有函數(shù)都涉及到修改傳遞給它們的列表。使用時(shí)一定小心,不然會(huì)誤刪列表中的元素或者在錯(cuò)誤的位置插入元素。
以函數(shù)append
為例,在列表num
末尾添加一個(gè)元素,簡(jiǎn)單的一種編程模式,在函數(shù)開(kāi)頭創(chuàng)建一個(gè)空列表,然后再列表中添加元素,
如下:判斷一個(gè)列表中的數(shù)據(jù)是正數(shù)還是負(fù)數(shù)。
def list_num(list): msg = [] for num in list: if num < 0: s = str(num) + ' 是負(fù)數(shù)' elif 0 <= num <= 9: s = str(num) + ' 是正數(shù)' msg.append(s) return msg if __name__ == '__main__': print(list_num([3,-10.7,22,-99,1]))
其它相關(guān)函數(shù)的使用就不一一舉例了,有興趣的可以自己體驗(yàn)一下。
2.2 列表排序
對(duì)數(shù)據(jù)進(jìn)行排序是計(jì)算機(jī)最常做的事情 之一。無(wú)論是對(duì)人還是計(jì)算機(jī)來(lái)說(shuō),排序后 的數(shù)據(jù)通常比未排序的數(shù)據(jù)更容易處理。例如,在列表中查找最小的元素時(shí),如果列表經(jīng)過(guò)了排序,就根本不需要查找:第一個(gè)元素就是,人們的習(xí)慣就是喜歡排列有序的數(shù)據(jù)(特例除外哈)。
在 Python 中,要對(duì)列表進(jìn)行排序,最簡(jiǎn) 單的方式是使用函數(shù) sort()
。實(shí)際上,這個(gè)函數(shù)可用于對(duì)包含數(shù)萬(wàn)個(gè)元素的列表進(jìn)行快速排序,同時(shí)可以修改列表。
如下:sort總是按照從小到大的順序排序,若需要相反的順序排列元素,先調(diào)用sort方法之后在使用reverse
方法。
2.3 解析列表
在實(shí)際Python
使用中,會(huì)有很多地方使用到列表,所以Python
提供了一種用于創(chuàng)建列表的特殊表示法—列表解析。下面舉例如何使用列表解析來(lái)創(chuàng)建 一個(gè)由 1~10
的平方組成的列表: 這種表示法的主要優(yōu)點(diǎn)是簡(jiǎn)潔易讀。for
循環(huán)代碼沒(méi)有使用列表解析,使用越多就越會(huì)發(fā)現(xiàn),列表解析方法編寫容易并且簡(jiǎn)潔。
list = [] num = [-1, 0, 6, -4, -2, 3, 8, -12] for n in num: if n > 0: list.append(n)
對(duì)比使用常規(guī)循環(huán),可以體現(xiàn)出列表解析更加簡(jiǎn)潔易讀!其它還可以實(shí)現(xiàn)諸如刪除特定字符串的功能,有興趣的朋友們可以實(shí)現(xiàn)一下刪除特定字符串的列表解析,十分簡(jiǎn)單。
到此這篇關(guān)于Python
數(shù)據(jù)結(jié)構(gòu)列表的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)結(jié)構(gòu)列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python爬取網(wǎng)頁(yè)數(shù)據(jù)到保存到csv
大家好,本篇文章主要講的是python爬取網(wǎng)頁(yè)數(shù)據(jù)到保存到csv,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01利用Python發(fā)送 10 萬(wàn)個(gè) http 請(qǐng)求
這篇文章主要介紹了如何利用Python發(fā)送 10 萬(wàn)個(gè) http 請(qǐng)求,下面我們講利用Python寫代碼實(shí)現(xiàn)10 萬(wàn)個(gè) url,對(duì)每個(gè) url 發(fā)送 http 請(qǐng)求,并打印請(qǐng)求結(jié)果的狀態(tài)碼,需要的朋友可以參考一下2021-12-12Python實(shí)現(xiàn)的用戶登錄系統(tǒng)功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的用戶登錄系統(tǒng)功能,涉及Python流程控制及字符串判斷等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02PyQt5下拉式復(fù)選框QComboCheckBox的實(shí)例
今天小編就為大家分享一篇PyQt5下拉式復(fù)選框QComboCheckBox的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Django Path轉(zhuǎn)換器自定義及正則代碼實(shí)例
這篇文章主要介紹了Django Path轉(zhuǎn)換器自定義及正則代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05python基于Bokeh庫(kù)制作子彈圖及瀑布圖示例教程
這篇文章主要為大家介紹了python基于Bokeh庫(kù)制作子彈圖及瀑布圖的實(shí)現(xiàn)示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-10-10