需要注意的地方
1.字符串的内置函数的调用一般不改变原字符串,而列表的内置函数的调用一般会改变列表。
trystr = 'mytry'
print(trystr.upper())#MYTRY
print(trystr)#mytry
#要想改变原字符串应该使用如下代码
trystr = trystr.upper()
trylist = [2,6,7,1,0]
print(trylist.sort())#None
print(trylist)#[0, 1, 7, 6, 2]
#注意如下的调用是错误的
trylist = trylist.sort()
2.要想把字典转化为列表注意是想把键、值还是键值对转化为列表。
try_dict = {'a':1, 'b':2, 'c':3}
try_list = list(try_dict.items())
print(try_list)#[('a', 1), ('b', 2), ('c', 3)]
try_list = list(try_dict.keys())
print(try_list)#['a', 'b', 'c']
try_list = list(try_dict.values())
print(try_list)#[1, 2, 3]
3.不确定索引的元素是否存在,用.get
try_dict = {'a':1, 'b':2, 'c':3}
print(try_dict.get('a','无'))#1
print(try_dict.get('d','无'))#无
4.对非简单的列表进行排序,要用到lambda表达式
try_list = [[3,23,4],[11,6,8],[9,7,2]]
#按照第一个元素的大小排序
try_list.sort(key = lambda x:x[0])
print(try_list)
#[[3, 23, 4], [9, 7, 2], [11, 6, 8]]
#按照第二个元素的大小排序
try_list.sort(key = lambda x:x[1])
print(try_list)
#[[11, 6, 8], [9, 7, 2], [3, 23, 4]]
#按照第三个元素的大小排序
try_list.sort(key = lambda x:x[2])
print(try_list)
#[[9, 7, 2], [3, 23, 4], [11, 6, 8]]
实现代码
#封装获得文本的函数
def get_text(file_name):
with open(file_name,'r') as fr:
text = fr.read()
text = text.lower()#注意会有大小写之分,这里不区分大小写
delete_ch = ['\n',':','!','?',',','.']#要删除的标点
for ch in delete_ch:
text = text.replace(ch,' ')
return text
file_name = 'hamlet.txt'#要处理的文件
text = get_text(file_name)
text = text.split()#注意!不能有split(' ')
count_dict = {}
#统计每个单词的个数
for i in text:
count_dict[i] = count_dict.get(i,0) + 1
#转化成列表的形式
count_dict = list(count_dict.items())
count_dict.sort(key = lambda x:x[1], reverse = True)
for i in range(10):
word,count = count_dict[i]
print(word,count)