python第七週學習內容及測驗作業
字典和集合
1.字典(鍵值對)
鍵必須是不可變的且不重複,值可以是任意型別
for key in my_dict :
列舉字典中的鍵,注:鍵是無序的
my_dict.items() – 全部的鍵-值對
my_dict.keys() – 全部的鍵
my_dict.values() – 全部的值
my_dict.clear() – 清空字典
字典的簡單應用:
讀取一個字串,計算每個字母出現的個數
①
s=raw_input()
count=[0]*26
for i in s :
if i.isalpha():#考慮到空格存在需要判斷一下
count[ord(i)-97]+=1
else:
continue
print count
應將字母轉換成小寫字母。
>>>
single is simple,double is trouble
[0, 2, 0, 1, 4, 0, 1, 0, 4, 0, 0, 4, 1, 1, 2, 1, 0, 1, 4, 1, 2, 0, 0, 0, 0, 0]
②字典
s=raw_input()
s=s.lower()
dic={}
for i in s:
if i.isalpha():
if i in dic :
dic[i]+=1
else :
dic[i]=1
print dic
>>>
AabBCCefdg
{'a': 2, 'c': 2, 'b': 2, 'e': 1, 'd': 1, 'g': 1, 'f': 1}
單詞計數
f=open('emma.txt')
word_freq={}
for line in f:
words=line.strip().split()
for word in words:
if word in word_freq:
word_freq[word]+=1
else:
word_freq[word] =1
freq_word=[]
for word ,freq in word_freq.items():
freq_word.append((freq,word))
freq_word.sort(reverse=True)
for freq,word in freq_word[:10]:
print word
f.close()
>>>
to
the
and
of
a
I
was
in
not
her
Python split()
通過指定分隔符對字串進行切片,如果引數num 有指定值,則僅分隔 num 個子字串
split()方法語法:
str.split(str=”“, num=string.count(str)).
引數
str – 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。
num – 分割次數
返回分割後的字串列表。
Python strip()
用於移除字串頭尾指定的字元(預設為空格)。
strip()方法語法:str.strip([chars]);
引數
chars – 移除字串頭尾指定的字元。
返回移除字串頭尾指定的字元生成的新字串。
2.集合(無序不重複(鍵)集)
題目內容:
實現逆向最大匹配分詞演算法,即從右向左掃描,找到最長的詞並切分。如句子“研究生命的起源”,逆向最大匹配分詞演算法的輸出結果為“研究 生命 的 起源”。
輸入格式:
第一行是以utf-8格式輸入的詞表,每個詞之間以空格分隔。
接下來是若干行以utf-8格式輸入的中文句子。
輸出格式:
以utf-8格式輸出的逆向最大匹配的分詞結果,每個詞之間使用空格分隔。每個輸入對應一行輸出。
輸入樣例:
你 我 他 愛 北京 天安門 研究 研究生 命 生命 的 起源
研究生命的起源
我愛北京天安門
輸出樣例:
研究 生命 的 起源
我 愛 北京 天安門
def load_dict():
line = unicode(raw_input(), 'utf-8')
word_dict = set()
max_length = 1
words = line.split()
for word in words:
if len(word) > max_length:
max_length = len(word)
word_dict.add(word)
return max_length, word_dict
def bmm_word_seg(sentence, word_dict, max_length):
words = []
sentence = unicode(sentence, 'utf-8')
right = len(sentence)
while right > 0:
for left in range(max(right - max_length, 0), right,1):
word = sentence[left:right]
if word in word_dict or right == left + 1:
words.append(word)
break
right = left
return words
max_length, word_dict = load_dict()
list=[]
while 1:
seginput=raw_input()
if seginput=='':
break
words = bmm_word_seg(seginput, word_dict, max_length)
words.reverse()
list.append(words)
for words in list:
for word in words:
print word.encode('utf-8'),
print
相關推薦
python第七週學習內容及測驗作業
字典和集合 1.字典(鍵值對) 鍵必須是不可變的且不重複,值可以是任意型別 for key in my_dict : 列舉字典中的鍵,注:鍵是無序的 my_dict.items() – 全部的鍵-值對 my_dict.key
python第七周學習內容
語句 func 返回 連接 tro ror ssa strong 反饋 1.反射: 1.1定義:通過字符串映射或修改程序運行時的狀態、屬性、方法 1.2有以下四個方法: (1)hasattr(object,str) 判斷object對象中是否有對應的方法或屬性,返回值:Tr
python第八週學習內容
1.socket網路程式設計 1.1概念: 網路套接字是跨計算機網路的連線的端點。今天,計算機之間的大多數通訊都基於網際網路協議;因此大多數網路套接字都是Internet套接字。更準確地說,套接字是一個控制代碼(抽象引用),本地程式可以將其傳遞給網路應用程式程式設計介面(API)以使用該連線,例如“在此套
第七週學習內容
實現一下測試程式碼功能 //測試程式碼1:二維座標點類 Point pPoint = new Point(45, 56); Console.WriteLine(pPoint.X);// 應該輸出45 Console.WriteL
Python第七周 學習筆記(2)
學習筆記面向對象 類 class 抽象概念 是屬性與方法的集合 對象/實例 instance/object 類的具體實現/實例化 屬性 對象狀態的抽象,用數據結構描述 操作/方法 對象行為的抽象,用操作名和實現該操作的方法來描述 一切皆對象 對象是數據和操作的封裝 對象是獨
Python第七周 學習筆記(1)
學習筆記日誌分析 業務中會生成大量的系統日誌、應用程序日誌、安全日誌等,通過對日誌的分析可以了解服務器的負載、健康狀況,可以分析客戶的分布情況、客戶的行為,甚至基於這些分析可以做出預測 一般采集流程 日誌產出 -> 采集(Logstash、Flume、Scribe)-> 存儲 -&g
python第三周學習內容
poj 刪除 目的 就會 obj 處理 函數的參數 分配內存 特點 1.集合: 集合的創建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是無序的,集合可以去掉重復的元素 集合的操作:求交集:
20172302 《Java軟體結構與資料結構》第七週學習總結
2018年學習總結部落格總目錄:第一週 第二週 第三週 第四周 第五週 第六週 第七週 教材學習內容總結 第11章 二叉查詢樹 1.二叉查詢樹是一種含有附加屬性的二叉樹,該屬性即其左孩子小於父節點,而父節點又小於等於其右孩子。二叉查詢樹的一個示意圖: 在二叉查詢樹中: &nbs
20172323 2018-2019-1 《程式設計與資料結構》第七週學習總結
20172323 2018-2019-1 《程式設計與資料結構》第七週學習總結 教材學習內容總結 本週學習了第11章二叉查詢樹 11.1概述 二叉查詢樹的左孩子小於父結點,而父結點又小於或等於其右孩子 二叉查詢樹的定義是二叉樹定義的擴充套件
20172324 2018-2019-1 《程式設計與資料結構》第七週學習總結
20172324 2018-2019-1 《程式設計與資料結構》第七週學習總結 教材學習內容總結 概述 二叉查詢樹是一種含有附加屬性的二叉樹,即其左孩子小於父節點,而父節點又小於等於其右孩子。 它是特殊的二叉樹:對於二叉樹,假設x為二叉樹中的任意一個結點,x節點包含關鍵字key,節點x的key值記
20172308 《程式設計與資料結構》第七週學習總結
教材學習內容總結 第 十一 章 二叉查詢樹 一、概述 二叉查詢樹是一種含有附加屬性的二叉樹,即其左孩子小於父結點,父結點小於或等於右孩子 (二叉查詢樹的定義是二叉樹定義的擴充套件) 二、 用連結串列實現二叉查詢樹 addElement操作: addElement方法根據給定元素的值,在樹中的恰當位
20172314 2018-2019-1《程式設計與資料結構》第七週學習總結
教材學習內容總結 概述 二叉查詢樹:是含附加屬性的二叉樹,即其左孩子小於父節點,而父節點又小於或等於右孩子。 二叉查詢樹的定義是二叉樹定義的擴充套件。 二叉查詢樹的各種操作 用連結串列實現二叉查詢樹 每個BinaryTreeNode物件要維護一個指向結點所儲存元素的引用,另外
20172315 2018-2019-2 《程式設計與資料結構》第七週學習總結
20172315 2018-2019-2 《程式設計與資料結構》第七週學習總結 教材學習內容總結 二又查詢樹是一種含有附加屬性的二又樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。 每個BinaryTreeNode物件要維護一個指向結點所儲存元素的引用,另外還要維護指向結點的每個孩子
20172319 《程式設計與資料結構》 第七週學習總結
20172319 2018.10.27-11.02 《程式設計與資料結構》第7周學習總結 目錄 教材學習內容總結 教材學習中的問題和解決過程 程式碼除錯中的問題和解決過程 程式碼託管 上週考試錯題總結 結對及互評 學習進度條
2018-2019-20172329 《Java軟體結構與資料結構》第七週學習總結
2018-2019-20172329 《Java軟體結構與資料結構》第七週學習總結 教材學習內容總結 《Java軟體結構與資料結構》第十一章-二叉查詢樹 一、概述 1、什麼是二叉查詢樹:二叉查詢樹是一種帶有附加屬性的二叉樹,即對樹中的每個結點,其左孩子都要小於其父結點,而父結點又小於或等於其右孩
20172311《程式設計與資料結構》第七週學習總結
20172311《程式設計與資料結構》第七週學習總結 教材學習內容總結 第十一章 二叉查詢樹 樹是一種非線性結構,其中的元素被組織成一個層次結構 含有m個元素的平衡n元樹具有的高度為lognm 樹的陣列實現之計算策略: 如果我們儲存的樹不是完全的或者只是相對完全的,則該陣列
20172322 《程式設計與資料結構》第七週學習總結
20172322 《程式設計與資料結構》第七週學習總結 教材學習內容總結 本章的內容主要講二叉查詢樹,二叉查詢樹是對於二叉樹的一種拓展,這意味著上一章中對於二叉樹的操作對於二叉查詢樹同樣適用,同時它也是一種帶有附加屬性的二叉樹。這種附加屬性即:對樹中的每個結點,它的左孩子都要小於其父結點,而父結點又小於或
20172320 2018-2019-1 《Java程式設計》第七週學習總結
20172320 2018-2019-1 《Java程式設計》第七週學習總結 教材學習內容總結 二叉查詢樹是一種帶有附加屬性的二叉樹,即對樹中的每個結點,其左孩子都要小於其父節點,而父節點又要小於等於右孩子 二叉查詢樹的定義是二叉樹的擴充套件,因此操作是二叉樹中已定義的哪些操作的補充
20172306 2018-2019-2 《Java程式設計與資料結構》第七週學習總結
20172306 2018-2019-2 《Java程式設計與資料結構》第七週學習總結 教材學習內容總結 概述 二叉查詢樹是一種含有附加屬性的二叉樹,即其左孩子小於父結點,而父結點又小於或等於右孩子。 二叉查詢樹的定義是二叉樹定義的擴充套件。 二叉查詢樹的各種操作:a
20172301 《程式設計與資料結構》第七週學習總結
20172301 《程式設計與資料結構》第七週學習總結 教材學習內容總結 二叉查詢樹是一種含有附加屬性的二叉樹,其左孩子小於父結點,父結點小於或者等於右孩子。 用連結串列實現二叉查詢樹 addElement操作:根據給定元素的值,在樹中的恰當位置新增該元素。 判斷元素是