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