python學(xué)習(xí)之?dāng)?shù)據(jù)結(jié)構(gòu)

列表

list=[val1,val2,val3,val4]
  • 列表中每一個元素是可變的欠拾;
  1. 列表中每個元素是有序的班巩,每個元素都有相應(yīng)的位置靖秩;
  2. 列表可以容納python中任何對象

查詢(只接受位置索引[0])

Weekday = ['Monday','Tuesday','Wednesday','Thursday','Friday']#創(chuàng)建一個列表
print(Weekday[0])#索引0位置的元素

添加insert(插入一個元素)extend(添加多個元素)

fruit = ['pineapple','pear']
fruit.insert(1,'grape')#列表中插入一個元素用.insert()方法
print(fruit)
fruit[0:0] = ['Orange']#也可以用這種方式插入
print(fruit)

刪除remove()或者del關(guān)鍵字實現(xiàn)

fruit = ['pinapple','pear','grape']
fruit.remove('grape')#用.remove()方法實現(xiàn)刪除
print(fruit)
del fruit[0:2]#還可以用del關(guān)鍵字來刪除
print(fruit)

替換

fruit[0] = 'Grapefruit'#索引變量被后面賦值
print(fruit)

檢索

periodic_table = ['H','He','Li','Be','B','C','N','O','F','Ne']
print(periodic_table[0])#索引出0位置
print(periodic_table[-2])#索引出-2位置元素
print(periodic_table[0:3])#索引出0谈息、1屯耸、2位置的元素
print(periodic_table[-10:-7])#索引出-10且预、-9蜈项、-8位置的元素
print(periodic_table[-10:])#索引出-10到最后的元素
print(periodic_table[:9])#索引出0到8位置上的元素
print(periodic_table['H'])#報錯可得知列表索引必須是整數(shù)或者是片定硝,而不是字符串即用元素索引出對應(yīng)的位置

字典(鍵值對)

dict={key:val1,key2:val2}
  1. 字典中的數(shù)據(jù)必須以鍵值對的形式出現(xiàn)瘪菌;
  2. 邏輯上撒会,鍵不能重復(fù),但值可以师妙;
  • 字典中的鍵是不可變的诵肛,不可修改;值是可以變默穴,修改的怔檩,可以是任何對象;

字典可以添加NASDAQ_code[‘YOU’]=’Youku’或者.update()

NASDAQ_code = {'BIDU':'Baidu','SINA':'Sina'}
NASDAQ_code['YOKU'] = 'Youku'#字典添加一個用法
print(NASDAQ_code)
NASDAQ_code.update({'FB':'Facebook','TSLA':'Tesla'})#字典添加多個用.update()方法
print(NASDAQ_code)

刪除del()

del NASDAQ_code['FB']#字典刪除del關(guān)鍵字
print(NASDAQ_code)

索引(只能索引關(guān)鍵詞NASDAO_code[‘YOU’])

NASDAQ_code['TSLA']#字典的索引蓄诽,是用列表的方法索引關(guān)鍵字

但字典不能切片

NASDAQ_code[1:4] # WRONG!字典不能進(jìn)行切片

元組(固定的列表)

tuple=(val1,val2,val3,val4)
不可以添加薛训、刪除÷胤眨可以索引

letters = ('a','b','c','d','e','f','g')#元組的形式(X乙埃,Y)
letters[0]#元組的索引和列表類似

集合

set={val1,val2,val3,val4}
集合元素?zé)o序,不重復(fù)锯岖,用來判斷從屬關(guān)系
集合可添加介袜、刪除,集合運算出吹,但不可以索引

a_set = {1,2,3,4}#創(chuàng)建集合
a_set.add(5)#添加集合元素.add()
print(a_set)
a_set.discard(5)#刪除集合元素.discard()
print(a_set)

數(shù)據(jù)結(jié)構(gòu)的一些技巧

多重循環(huán)

sorted(list)方法實現(xiàn)列表元素排序

num_list = [6,2,7,4,1,3,5]
print(sorted(num_list))#sorted()分類整理函數(shù)
sorted(num_list,reverse=True)#默認(rèn)參數(shù)reverse為false遇伞,現(xiàn)在實現(xiàn)的倒序

for a,b in zip(num,str)倆個列表

num = [6,2,7,4]
str = ['a','b','c','d']
for a,b in zip(num,str):
    print(b,'is',a)#很容易格式錯誤expected an indented block期待在約束塊中

推導(dǎo)式

10個元素裝入列表
普通寫法

a = []
for i in range(1,11):
    a.append(i)#用.append()方法+for循環(huán)實現(xiàn)1到10的加入列表
print(a)

列表遞推式

b = [i for i in range(1,11)]#用列表解析式實現(xiàn)1到10的加入列表
print(b)

為了深刻立即list = [item for item in iterable]舉幾個栗子吃吃就知道了

a = [i**2 for i in range(1,10)]#i**2為我們要放在列表中的元素,i的取值范圍為1到9捶牢,既可以預(yù)見結(jié)果為1赃额,4,9...81 
c = [j+1 for j in range(1,10)]#2,3,4....10
k = [n for n in range(1,10) if n % 2 ==0]#n為1到9范圍內(nèi)的偶數(shù)
z = [letter.lower() for letter in 'ABCDEFGHIGKLMN']#字符串按小到大排列

字典的遞推式實現(xiàn)

d = {i:i+1 for i in range(4)}#字典中鍵從0到3的一個添加
g = {i:j for i,j in zip(range(1,6),'abcde')}#字典中鍵i從1到5叫确,值j從a到e的組合添加
g = {i:j.upper() for i,j in zip(range(1,6),'abcde')}#.upper()方法實現(xiàn)字母小寫變大寫的功能

循環(huán)列表時獲取元素索引

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for num,letter in enumerate(letters):#用enumerate()枚舉函數(shù),將列表的元素位置枚舉出來
    print(letter,'is',num + 1)

綜合項目:詞頻率統(tǒng)計

import string#引入字符串模塊
path = '/Users/sharymo/Desktop/Walden.txt'
with open(path,'r') as text:
    words = [raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]#去掉前面的標(biāo)點符號芍锦,并把首字母改寫成小寫
    words_index = set(words)#將列表轉(zhuǎn)換成集合竹勉,并把其中的重復(fù)去掉
    counts_dict = {index:words.count(index) for index in words_index}#創(chuàng)建一個以單詞為key,以頻數(shù)為值的字典
for word in sorted(counts_dict,key=lambda x: counts_dict[x],reverse=True):
    print('{} -- {} times'.format(word,counts_dict[word]))#打印整理好的函數(shù)

這次學(xué)的都蠻實用的
萌新求多多支持_

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末娄琉,一起剝皮案震驚了整個濱河市次乓,隨后出現(xiàn)的幾起案子吓歇,更是在濱河造成了極大的恐慌,老刑警劉巖票腰,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件城看,死亡現(xiàn)場離奇詭異,居然都是意外死亡杏慰,警方通過查閱死者的電腦和手機测柠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缘滥,“玉大人轰胁,你說我怎么就攤上這事〕螅” “怎么了赃阀?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長擎颖。 經(jīng)常有香客問我榛斯,道長,這世上最難降的妖魔是什么搂捧? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任驮俗,我火速辦了婚禮,結(jié)果婚禮上异旧,老公的妹妹穿的比我還像新娘意述。我一直安慰自己,他們只是感情好吮蛹,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布荤崇。 她就那樣靜靜地躺著,像睡著了一般潮针。 火紅的嫁衣襯著肌膚如雪术荤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天每篷,我揣著相機與錄音瓣戚,去河邊找鬼。 笑死焦读,一個胖子當(dāng)著我的面吹牛子库,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矗晃,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼仑嗅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仓技,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鸵贬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脖捻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阔逼,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年地沮,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗜浮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡诉濒,死狀恐怖周伦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情未荒,我是刑警寧澤专挪,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站片排,受9級特大地震影響寨腔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜率寡,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一迫卢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冶共,春花似錦乾蛤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至庙楚,卻和暖如春上荡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背馒闷。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工酪捡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纳账。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓逛薇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疏虫。 傳聞我的和親對象是個殘疾皇子金刁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容