一厦章、前言
學習就是一個不斷的自下而上,自上而下的過程照藻。
前段時間袜啃,學著用python實現(xiàn)網(wǎng)站的數(shù)據(jù)爬取,隱約get到python的一些語法和用法幸缕,感覺就是語法不難群发,關鍵在于解決問題的思維。
這是需求驅動后的學習发乔。接下來熟妓,就需要對python進行系統(tǒng)地了解。
很早之前搜知乎的時候栏尚,就搜到MOOC上的一門《python語言程序設計》課程起愈,講得很好,而且译仗,我還下載了課件抬虽,溜了一遍,感覺就挺有趣的纵菌。
趁著有了實戰(zhàn)經(jīng)驗阐污,就把這門入門課刷了一遍。果然是門好課产艾!很適合小白入門疤剑,并系統(tǒng)學習,整個教學過程循序漸進闷堡,深入淺出,提綱挈領疑故,很有意思杠览!
課程是北京理工大學嵩天老師的《python語言程序設計》課程,現(xiàn)在已經(jīng)開了11次課了纵势。課程每個小視頻短則幾分鐘踱阿,最長也不超過20分鐘,不容易勸退钦铁。每章講解有復習回顧及小結软舌,在平臺python123上有每章的練習和測試,直接反饋結果牛曹,激發(fā)繼續(xù)學下去的興趣佛点。
個人感覺,老師說話速度慢了些,調成了2倍速播放超营,然后鸳玩,花了大約3天的時間,把所有的視頻演闭,課件不跟,練習和測試都刷了一遍,感覺對python的了解更系統(tǒng)了米碰!
趁熱打鐵窝革,把每章的知識點和練習、測試再進行整理回顧一下吕座。
以下內容均來自課程:《python語言程序設計》 及平臺python123聊闯,感興趣的看課程視頻,親自練習米诉,效果更好~
二菱蔬、知識點
1.集合類型及操作
-
集合類型定義
①集合是多個元素的無序組合
②集合元素之間無序,每個元素唯一史侣,不存在相同元素
③集合元素不可更改拴泌,不能是可變數(shù)據(jù)類型
④集合用大括號
{}
表示,元素間用逗號分隔⑤建立集合類型用
{}
或set()
⑥建立空集合類型惊橱,必須使用
set{}
A={'python',123,('python',123)} B=set('pypy123') C={'python',123,'python',123} print(A) #結果:{'python',123,('python',123)} print(B) #結果:{'1','p','2','3','y'} print(C) #結果:{'python',123}
-
集合操作符
操作符及應用 描述 S|T
并蚪腐,返回一個新集合,包括在集合S和T中的所有元素 S-T
差税朴,返回一個新集合回季,包括在集合S但不在T中的元素 S&T
交,返回一個新集合正林,包括同時在集合S和T中的元素 S^T
補泡一,返回一個新集合,包括集合S和T中的非相同元素 S<=T
或S<T
返回True/False觅廓,判斷S和T的子集關系 S>=T
或S>T
返回True/False鼻忠,判斷S和T的包含關系 S|=T
并,更新集合S杈绸,包括在集合S和T中的所有元素 S-=T
差帖蔓,更新集合S,包括在集合S但不在T中的元素 S&=T
交瞳脓,更新集合S塑娇,包括同時在集合S和T中的元素 S^=T
補,更新集合S劫侧,包括集合S和T中的非相同元素
A={'p','y',123}
B=set('pypy123')
print(A-B)
#結果:{123}
print(A&B)
#結果:{'p','y'}
print(A^B)
#結果:{'2',123,'3','1'}
print(B-A)
#結果:{'3','1','2'}
print(A|B)
#結果:{'1','p','2','y','3',123}
-
集合處理方法
操作函數(shù)或方法 描述 S.add(x)
如果x不在集合S中埋酬,將x增加到S S.discard(x)
移除S中元素x,如果x不在集合S中,不報錯 S.remove(x)
移除S中元素x奇瘦,如果x不在集合S中棘催,產(chǎn)生KeyError異常 S.clear(x)
移除S中所有元素 S.pop(x)
隨機返回S的一個元素,更新S耳标,若S為空醇坝,產(chǎn)生KeyError異常 S.copy()
返回集合S的一個副本 len(S)
返回集合S的元素個數(shù) x in S
判斷S中元素x,x在集合S中次坡,返回True呼猪,否則返回False x not in S
判斷S中元素x,x不在集合S中砸琅,返回True宋距,否則返回False set(x)
將其他類型變量x轉變?yōu)榧项愋?/td> -
集合類型應用場景
①包含關系比較
'p' in {'p','y',123} #結果:True {'p','y'}>={'p','y',123} #結果:False
②數(shù)據(jù)去重,集合類型所有元素無重復
ls=['p','p','y','y',123] s=set(ls) print(s) #結果:{'p','y',123} lt=list(s) #結果:['p','y',123]
2.序列類型及操作
-
序列類型定義
①序列是具有先后關系的一組元素症脂;一維元素向量谚赎,元素類型可以不同;元素間由序號引導诱篷,通過下標訪問序列的特定元素壶唤;
②序列是一個基類類型:字符串,元組棕所,列表類型闸盔;
③序號:正向遞增序號和反向遞減序號;
-
序列處理函數(shù)及方法
①通用操作符
操作符及應用 描述 x in s
如果x是序列s的元素琳省,返回True迎吵,否則返回False x not in s
如果x是序列s的元素,返回False针贬,否則返回True s + t
連接兩個序列s和t s*n 或n*s
將序列s復制n次 s[i]
索引击费,返回s中的第i個元素,i是序列的序號 s[i:j]
或s[i:j:k]
切片坚踩,返回序列s中第i到j以k為步長的元素子序列 ②函數(shù)和方法
函數(shù)和方法 描述 len(S)
返回序列s的長度荡灾,即元素個數(shù) min(s)
返回序列s的最小元素,s中元素需要可比較 max(s)
返回序列s的最大元素瞬铸,s中元素需要可比較 s.index(x)或s.index(x,i,j)
返回序列s從i開始到j位置中第一次出現(xiàn)元素x的位置 s.count(x)
返回序列s中出現(xiàn)x的總次數(shù) -
元組類型及操作
①元組是序列類型的一種擴展;
②元組一旦創(chuàng)建就不能被修改础锐;
③使用小括號
()
或tuple()
創(chuàng)建嗓节,元素間用逗號,
分隔④可以使用或不適用小括號
-
列表類型及操作
①列表是序列類型的一種擴展,十分常用皆警;
②列表創(chuàng)建后可以隨意被修改拦宣;
③使用方括號
[]
或list()
創(chuàng)建,元素間用逗號,分隔鸵隧;④列表中各元素類型可以不同绸罗,無長度限制;
⑤函數(shù)或方法
函數(shù)或方法 描述 ls[i]=x
替換列表ls第i元素為x ls[i:j:k]=lt
用列表lt替換ls切片后所對應元素子列表 del ls[i]
刪除列表ls中第i元素 del ls[i:j:k]
刪除列表ls中第i到第j以k為步長的元素 ls+=lt
更新列表ls豆瘫,將列表lt元素增加到列表ls中 ls*=n
更新列表ls珊蟀,其元素重復n次 ls.append(x)
在列表ls最后增加一個元素x ls.clear()
刪除列表ls中所有元素 ls.copy()
生成一個新列表,賦值ls中所有元素 ls.insert(i,x)
在列表ls的第i位置增加元素x ls.pop(i)
將列表ls中第i位置元素取出并刪除該元素 ls.remove(x)
將列表ls中出現(xiàn)的第一個元素x刪除 ls.reverse()
將列表ls中的元素反轉 -
序列類型應用場景
①數(shù)據(jù)表示:元組和列表外驱;元組用于元素不改變的應用場景育灸,更多用于固定搭配場景;列表更加靈活昵宇,是最常用的序列類型磅崭;
②元素遍歷;
③數(shù)據(jù)保護:如果不希望數(shù)據(jù)被程序所改變瓦哎,轉換成元組類型砸喻;
3.實例9:基本統(tǒng)計值計算
描述:計算總個數(shù),求和蒋譬,平均值割岛,方差,中位數(shù)
#獲取用戶不定長度的輸入
def getNum():
nums=[]
iNumStr=input('請輸入數(shù)字(回車退出):')
while iNumStr!='':
nums.append(eval(iNumStr))
iNumStr=input('請輸入數(shù)字(回車退出):')
return nums
#計算平均值
def mean(numbers):
s=0.0
for num in numbers:
s+=num
return s/len(numbers)
#計算方差
def dev(numbers,mean):
sdev=0.0
for num in numbers:
sdev+=(num-mean)**2
return pow(sdev/(len(numbers)-1),0.5)
# 計算中位數(shù)
def median(numbers):
numbers=sorted(numbers)
size=len(numbers)
if size%2==0:
med=(numbers[size//2-1]+numbers[size//2])/2
else:
med=numbers[size//2]
return med
n=getNum()
m=mean(n)
print('平均值:{},方差:{:.2},中位數(shù):{}'.format(m,dev(n,m),median(n)))
4.字典類型及操作
-
字典類型定義
①字典類型是“映射”的體現(xiàn)羡铲;是鍵值對的集合蜂桶;鍵值對之間無序;
②采用大括號
{}
和dict()
創(chuàng)建也切,鍵值對用冒號:
表示扑媚;③在字典變量中,通過鍵獲得值:
<值>=<字典變量>[<鍵>];<字典變量>[<鍵>]=<值>
-
字典處理函數(shù)及方法
函數(shù)或方法 描述 del d[k]
刪除字典d中鍵k對應的數(shù)據(jù)值 k in d
判斷鍵k是否在字典d中雷恃,如果在返回True疆股,否則False d.keys()
返回字典d中所有的鍵信息 d.values()
返回字典d中所有的值信息 d.itmes()
返回字典d中所有鍵值對信息 d.get(k,<default>)
鍵k存在,則返回相應值倒槐,不在則返回<default>值 d.pop(k,<default>)
鍵k存在旬痹,則取出相應值,不在則返回<default>值 d.popitem()
隨機從字典d中取出一個鍵值對讨越,以元組形式返回 d.clear
刪除所有鍵值對 len(d)
返回字典d中元素的個數(shù) -
字典類型應用場景
①表達鍵值對數(shù)據(jù)两残,進而操作它們;
②元素遍歷把跨;
5.模塊5:jieba庫的使用
-
jieba庫概述
①jieba是優(yōu)秀的中文分詞第三方庫人弓,需要額外安裝
(cmd命令行)pip install jieba
②中文文本需要通過分詞獲得單個的詞語
③jieba分詞原理:利用一個中文詞庫,確定中文字符之間的關聯(lián)概率着逐;中文字符間概率大的組成詞組崔赌,形成分詞結果意蛀;除了分詞,用戶還可以添加自定義的詞組健芭;
-
jieba庫使用說明
①jieba分詞的三種模式:(1)精確模式:把文本精確的切分開县钥,不存在冗余單詞;(2)全模式:把文本中所有可能的詞語都掃描出來慈迈,有冗余若贮;(3)搜索引擎模式:在精確模式基礎上,對長詞再次切分吩翻;
②常用函數(shù)
函數(shù) 描述 jieba.lcut(s)
精確模式兜看,返回一個列表類型的分詞結果<br />例如, jieba.lcut(‘中國是一個偉大的國家’)
狭瞎,結果是[‘中國’,’是’,’一個’,’偉大’,’的’,’國家’]
jieba.lcut(s,cut_all=True)
全模式细移,返回一個列表類型的分詞結果,有冗余<br />例如熊锭, jieba.lcut(‘中國是一個偉大的國家’,cut_all=True)
弧轧,結果是[‘中國’,’國是’,是’,’一個’,’偉大’,’的’,’國家’]
jieba.lcut_for_search(s)
搜索引擎模式,返回一個列表類型的分詞結果碗殷,有冗余<br />例如精绎, jieba.lcut_for_search('中華人民共和國是偉大的')
,結果是['中華', '華人', '人民', '共和', '共和國', '中華人民共和國', '是', '偉大', '的']
jieba.add_word(w)
向分詞詞典增加新詞w
6. 實例10:文本詞頻統(tǒng)計
描述:英文文本Hamlet英文詞頻統(tǒng)計锌妻,列出前10
def gettext():
txt=open('hamlet.txt','r').read()
txt=txt.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
txt=txt.replace(ch,' ')
return txt
hamletTxt=gettext()
words=hamletTxt.split()
counts={}
for word in words:
counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print('{0:<10}{1:>5}'.format(word,count))
描述:《三國演義》人物出場統(tǒng)計代乃,列出前10
import jieba
txt=open('threekingdoms.txt','r',encoding='utf-8').read()
exclude={'將軍','卻說','荊州','二人','不可','不能','如此'}
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
elif word in ['諸葛亮','孔明曰']:
rword='孔明'
elif word in ['關公','云長']:
rword='關羽'
elif word in ['玄德','玄德曰']:
rword='劉備'
elif word in ['孟德','丞相']:
rword='曹操'
else:
rword=word
counts[rword]=counts.get(rword,0)+1
for word in exclude:
del counts[word]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print('{0:<10}{1:>5}'.format(word,count))
三、練習
1. 實例9:基本統(tǒng)計值計算
同上
2.實例10:文本詞頻統(tǒng)計 -- Hamlet
同上
3. 人名獨特性統(tǒng)計
描述:編程模板中給出了一個字符串仿粹,其中包含了含有重復的人名搁吓,請去重后給出獨特性人名的統(tǒng)計。
輸出模板中字符串共有多少個獨特人名吭历。
s = '''雙兒 洪七公 趙敏 趙敏 逍遙子 鰲拜 殷天正 金輪法王 喬峰 楊過 洪七公 郭靖
楊逍 鰲拜 殷天正 段譽 楊逍 慕容復 阿紫 慕容復 郭芙 喬峰 令狐沖 郭芙
金輪法王 小龍女 楊過 慕容復 梅超風 李莫愁 洪七公 張無忌 梅超風 楊逍
鰲拜 岳不群 黃藥師 黃蓉 段譽 金輪法王 忽必烈 忽必烈 張三豐 喬峰 喬峰
阿紫 喬峰 金輪法王 袁冠南 張無忌 郭襄 黃蓉 李莫愁 趙敏 趙敏 郭芙 張三豐
喬峰 趙敏 梅超風 雙兒 鰲拜 陳家洛 袁冠南 郭芙 郭芙 楊逍 趙敏 金輪法王
忽必烈 慕容復 張三豐 楊逍 令狐沖 黃藥師 袁冠南 楊逍 完顏洪烈 殷天正
李莫愁 阿紫 逍遙子 喬峰 逍遙子 完顏洪烈 郭芙 楊逍 張無忌 楊過 慕容復
逍遙子 虛竹 雙兒 喬峰 郭芙 黃蓉 李莫愁 陳家洛 楊過 忽必烈 鰲拜 王語嫣
洪七公 韋小寶 阿朱 梅超風 段譽 岳靈珊 完顏洪烈 喬峰 段譽 楊過 楊過 慕容復
黃蓉 楊過 阿紫 楊逍 張三豐 張三豐 趙敏 張三豐 楊逍 黃蓉 金輪法王 郭襄
張三豐 令狐沖 郭芙 韋小寶 黃藥師 阿紫 韋小寶 金輪法王 楊逍 令狐沖 阿紫
洪七公 袁冠南 雙兒 郭靖 鰲拜 謝遜 阿紫 郭襄 梅超風 張無忌 段譽 忽必烈
完顏洪烈 雙兒 逍遙子 謝遜 完顏洪烈 殷天正 金輪法王 張三豐 雙兒 郭襄 阿朱
郭襄 雙兒 李莫愁 郭襄 忽必烈 金輪法王 張無忌 鰲拜 忽必烈 郭襄 令狐沖
謝遜 梅超風 殷天正 段譽 袁冠南 張三豐 王語嫣 阿紫 謝遜 楊過 郭靖 黃蓉
雙兒 滅絕師太 段譽 張無忌 陳家洛 黃蓉 鰲拜 黃藥師 逍遙子 忽必烈 趙敏
逍遙子 完顏洪烈 金輪法王 雙兒 鰲拜 洪七公 郭芙 郭襄'''
print(len(set(s.split(' ')))-2)
4. 字典翻轉輸出
描述:讀入一個字典類型的字符串堕仔,反轉其中鍵值對輸出。
即晌区,讀入字典key:value模式摩骨,輸出value:key模式。
輸入格式
用戶輸入的字典格式的字符串朗若,如果輸入不正確恼五,提示:輸入錯誤。
輸出格式
給定字典d哭懈,按照print(d)方式輸出
d=eval(input())
if type(d)!=type({"a": 1, "b": 2}):
print('輸入錯誤')
else:
k=list(d.values())
v=list(d.keys())
new={}
for i in range(len(d)):
new[k[i]]=v[i]
print(new)
5. 《沉默的羔羊》之最多單詞
描述:附件是《沉默的羔羊》中文版內容唤冈,請讀入內容,分詞后輸出長度大于2且最多的單詞银伟。
如果存在多個單詞出現(xiàn)頻率一致你虹,請輸出按照Unicode排序后最大的單詞。
輸入格式
文件
輸出格式
字符串
import jieba
text=open('沉默的羔羊.txt','r',encoding='utf-8').read()
words=jieba.lcut(text)
counts={}
for w in words:
if len(w)<=2:
continue
else:
counts[w]=counts.get(w,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
maxfre=items[0][1]
maxwords=[]
for i in items:
if i[1]==maxfre:
maxwords.append(i)
else:
break
maxwords.sort(key=lambda x:x[0],reverse=True)
print(maxwords[0][0])
四彤避、測試
1.選擇題
-
S和T是兩個集合傅物,哪個選項對S^T的描述是正確的?
A S和T的差運算琉预,包括在集合S但不在T中的元素
B S和T的補運算董饰,包括集合S和T中的非相同元素
C S和T的交運算,包括同時在集合S和T中的元素
D S和T的并運算圆米,包括在集合S和T中的所有元素
集合"交并差補"四種運算分別對應的運算符是:& | - ^
-
給定字典d卒暂,哪個選項對x in d的描述是正確的?
A 判斷x是否是在字典d中以鍵或值方式存在
B 判斷x是否是字典d中的鍵
C x是一個二元元組娄帖,判斷x是否是字典d中的鍵值對
D 判斷x是否是字典d中的值
鍵是值的序號也祠,也是字典中值的索引方式。
因此近速,x in d 中的x被當作d中的序號進行判斷诈嘿。
- 哪個選項是下面代碼的輸出結果?
d= {'a': 1, 'b': 2, 'b': '3'}
print(d['b'])
A 3 B {'b':2} C 1 D 2
創(chuàng)建字典時削葱,如果相同鍵對應不同值奖亚,字典采用最后(最新)一個"鍵值對"。
-
給定字典d析砸,哪個選項對d.values()的描述是正確的昔字?
A 返回一個列表類型,包括字典d中所有值
B 返回一個集合類型首繁,包括字典d中所有值
C 返回一種dict_values類型作郭,包括字典d中所有值
D 返回一個元組類型,包括字典d中所有值
運行如下代碼:(其中d是一個預定義的字典)
d={"a":1, "b":2} type(d.values())
輸出結果是:<class 'dict_values'>
d.values()返回的是dict_values類型蛮瞄,這個類型通常與for..in組合使用所坯。
-
以下不是Python序列類型的是:
A 字符串類型
B 數(shù)組類型
C 列表類型
D 元組類型
Python內置數(shù)據(jù)類型中沒有數(shù)組類型。
-
列表ls挂捅,哪個選項對ls.append(x)的描述是正確的芹助?
A 向列表ls最前面增加一個元素x
B 向ls中增加元素,如果x是一個列表闲先,則可以同時增加多個元素
C 替換列表ls最后一個元素為x
D 只能向列表ls最后增加一個元素x
ls.append(x)状土,如果x是一個列表,則該列表作為一個元素增加的ls中伺糠。
-
關于大括號{}蒙谓,以下描述正確的是:
A 直接使用{}將生成一個元組類型
B 直接使用{}將生成一個列表類型
C 直接使用{}將生成一個集合類型
D 直接使用{}將生成一個字典類型
集合類型和字典類型最外側都用{}表示,不同在于训桶,集合類型元素是普通元素累驮,字典類型元素是鍵值對酣倾。
字典在程序設計中非常常用,因此谤专,直接采用{}默認生成一個空字典躁锡。
-
關于Python的元組類型,以下選項錯誤的是:
A 一個元組可以作為另一個元組的元素置侍,可以采用多級索引獲取信息
B 元組中元素必須是相同類型
C 元組一旦創(chuàng)建就不能被修改
D 元組采用逗號和圓括號(可選)來表示
序列類型(元組映之、列表)中元素都可以是不同類型。
-
序列s蜡坊,哪個選項對s.index(x)的描述是正確的杠输?
A 返回序列s中元素x所有出現(xiàn)位置的序號
B 返回序列s中序號為x的元素
C 返回序列s中x的長度
D 返回序列s中元素x第一次出現(xiàn)的序號
注意:s.index(x)返回第一次出現(xiàn)x的序號,并不返回全部序號秕衙。
-
關于Python組合數(shù)據(jù)類型蠢甲,以下描述錯誤的是:
A 序列類型是二維元素向量,元素之間存在先后關系灾梦,通過序號訪問
B 組合數(shù)據(jù)類型能夠將多個相同類型或不同類型的數(shù)據(jù)組織起來峡钓,通過單一的表示使數(shù)據(jù)操作更有序、更容易
C Python的字符串若河、元組和列表類型都屬于序列類型
D 組合數(shù)據(jù)類型可以分為3類:序列類型能岩、集合類型和映射類型
序列類型總體上可以看成一維向量,如果其元素都是序列萧福,則可被當作二維向量拉鹃。
2.程序設計題
- 數(shù)字不同數(shù)之和
描述:獲得用戶輸入的一個整數(shù)N,輸出N中所出現(xiàn)不同數(shù)字的和鲫忍。
例如:用戶輸入 123123123膏燕,其中所出現(xiàn)的不同數(shù)字為:1、2悟民、3坝辫,這幾個數(shù)字和為6。
num=input()
l=[]
for i in num:
l.append(eval(i))
l=set(l)
s=0
for i in l:
s+=i
print(s)
- 人名最多數(shù)統(tǒng)計
描述:編程模板中給出了一個字符串射亏,其中包含了含有重復的人名近忙,請直接輸出出現(xiàn)最多的人名。
s = '''雙兒 洪七公 趙敏 趙敏 逍遙子 鰲拜 殷天正 金輪法王 喬峰 楊過 洪七公 郭靖
楊逍 鰲拜 殷天正 段譽 楊逍 慕容復 阿紫 慕容復 郭芙 喬峰 令狐沖 郭芙
金輪法王 小龍女 楊過 慕容復 梅超風 李莫愁 洪七公 張無忌 梅超風 楊逍
鰲拜 岳不群 黃藥師 黃蓉 段譽 金輪法王 忽必烈 忽必烈 張三豐 喬峰 喬峰
阿紫 喬峰 金輪法王 袁冠南 張無忌 郭襄 黃蓉 李莫愁 趙敏 趙敏 郭芙 張三豐
喬峰 趙敏 梅超風 雙兒 鰲拜 陳家洛 袁冠南 郭芙 郭芙 楊逍 趙敏 金輪法王
忽必烈 慕容復 張三豐 趙敏 楊逍 令狐沖 黃藥師 袁冠南 楊逍 完顏洪烈 殷天正
李莫愁 阿紫 逍遙子 喬峰 逍遙子 完顏洪烈 郭芙 楊逍 張無忌 楊過 慕容復
逍遙子 虛竹 雙兒 喬峰 郭芙 黃蓉 李莫愁 陳家洛 楊過 忽必烈 鰲拜 王語嫣
洪七公 韋小寶 阿朱 梅超風 段譽 岳靈珊 完顏洪烈 喬峰 段譽 楊過 楊過 慕容復
黃蓉 楊過 阿紫 楊逍 張三豐 張三豐 趙敏 張三豐 楊逍 黃蓉 金輪法王 郭襄
張三豐 令狐沖 趙敏 郭芙 韋小寶 黃藥師 阿紫 韋小寶 金輪法王 楊逍 令狐沖 阿紫
洪七公 袁冠南 雙兒 郭靖 鰲拜 謝遜 阿紫 郭襄 梅超風 張無忌 段譽 忽必烈
完顏洪烈 雙兒 逍遙子 謝遜 完顏洪烈 殷天正 金輪法王 張三豐 雙兒 郭襄 阿朱
郭襄 雙兒 李莫愁 郭襄 忽必烈 金輪法王 張無忌 鰲拜 忽必烈 郭襄 令狐沖
謝遜 梅超風 殷天正 段譽 袁冠南 張三豐 王語嫣 阿紫 謝遜 楊過 郭靖 黃蓉
雙兒 滅絕師太 段譽 張無忌 陳家洛 黃蓉 鰲拜 黃藥師 逍遙子 忽必烈 趙敏
逍遙子 完顏洪烈 金輪法王 雙兒 鰲拜 洪七公 郭芙 郭襄 趙敏'''
word=s.split(' ')
d={}
for w in word:
d[w]=d.get(w,0)+1
del d['']
del d['\n']
items=list(d.items())
items.sort(key=lambda x:x[1],reverse=True)
print(items[0][0])
【筆記】《python語言程序設計》—Python基本語法元素
【筆記】《python語言程序設計》—Python基本圖形繪制
【筆記】《python語言程序設計》——基本數(shù)據(jù)類型
【筆記】《python語言程序設計》——函數(shù)和代碼復用
【筆記】《python語言程序設計》——組合數(shù)據(jù)類型