python第七周學習內容及測驗作業

2021-08-04 19:07:02 字數 3240 閱讀 3623

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 ******,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

單詞計數

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.sort(reverse=true)

for freq,word in freq_word[:10]:

print word

f.close()

>>>

tothe

andofai

wasin

nother



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()

forword

inwords:

iflen(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]

ifword

in word_dict or

right == left + 1:

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()

forwords

in list:

forword

inwords:

print word.encode('utf-8'),

print

python第七周小測(更新 佇列封裝(改錯))

1.學生資訊管理 學生資訊包括 學號,姓名,年齡,性別,出生年月,位址,email,設計學生資訊管理系統,提供以下功能 系統以選單方式工作 學生資訊錄入功能 學生資訊用檔案儲存 學生資訊瀏覽功能 按學號與姓名查詢 按學號與姓名排序 此功能未新增 學生資訊的刪除 學生資訊的修改 此功能未新增 clas...

python學習第七週之反射

1.反射 通過字串對映或修改程式執行時的狀態。有四個方法 hasattr getattr setattr delattr 2.1 如以下程式 hasattr 判斷有沒有屬性 hasattr d,choice 分別為 物件名 字串 getattr 呼叫該屬性 class dog object def ...

第七周學習總結

這次考核雖然算是結束了,但是對於我來說還遠遠沒有結束。通過這次考核,又暴露了出來我在學習方法和其他方面上的一些問題。首先是在學習方法方。現在想想,就我剛開始在小組學習的那一段時間來說,我認為我的學習方法其實就有一定的問題,比如對於問題只知道該怎麼解決,卻沒有去深究為什麼要這樣解決,還有沒有其他的解決...