ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python【每日一问】36

2019-07-04 13:01:13  阅读:316  来源: 互联网

标签:字符 排序 word target Python 一问 36 频次 txt


问:

基础题:

809*x=800*x+9*x+1 其中 x 代表的两位数, 8*x 的结果为两位数, 9*x 的结果为 3 位数。求 x ,及计算 809*x 的结果。

提高题:

对文件"命运.txt"进行字符频次统计,并将所有字符按照频次高低排序,将排序后的字符及其频次输出到文件"命运-频次排序.txt"
字符包括中文、英文、标点等,但不包括空格和回车
输出格式要求:
(1)字符与频次之间采用冒号 :分隔
(2)一个字符一行,比如
理:224
斯:120 
卫:100

答:

基础题:

809*x=800*x+9*x+1 其中 x 代表的两位数, 8*x 的结果为两位数, 9*x 的结果为 3 位数。求 x ,及计算 809*x 的结果。


方法1:

for x in range(10, 100):    
    if (10 <= 8*x < +100) and (100 <= 9*x <= 1000):        
    print(x)        
    print(809*x)

 

方法2:

a = 809
for i in range(10, 100):    
    b = a * i + 1    
    if 1000 <= b <= 10000 and 8 * i < 100 and 9 * i > 99:        
    print(i)        
    print(b)

提高题:

对文件"命运.txt"进行字符频次统计,并将所有字符按照频次高低排序,将排序后的字符及其频次输出到文件"命运-频次排序.txt"
字符包括中文、英文、标点等,但不包括空格和回车
输出格式要求:
(1)字符与频次之间采用冒号 :分隔
(2)一个字符一行,比如
理:224
斯:120 
卫:100


方法1:

txt = open('命运.txt', 'r', encoding='utf-8').read()
txt = txt.replace('\n', '')
count = {}
for word in txt:    
    count[word] = count.get(word, 0) + 1
counts = sorted(count.items(), key=lambda x: x[1], reverse=True)
for word, cnt in counts:    
    print(f'{word} : {cnt}')    
    file = open('命运-频次排序.txt', 'a+', encoding='utf-8')    
    file.write(f'{word} : {cnt}' + '\n')

 

方法2:

f = open(r'命运.txt', 'r', encoding="utf-8")
m = f.read().replace('\n', '')
target = {}
for word in m:    
    target[word] = target.get(word, 0) + 1
# print(target)
​
target = sorted(target.items(), key=lambda x: x[1], reverse=True)
​
with open('命运-频次排序1.txt', 'w', encoding='utf8') as output:    
for tar, count in target:        
    output.write('{}:{}\n'.format(tar, count))
    
f.close()

 

 





 

标签:字符,排序,word,target,Python,一问,36,频次,txt
来源: https://www.cnblogs.com/ElegantSmile/p/10989023.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有