我的任务之一遇到了问题。
我应该写一个代码,如果它需要一个文本文件并计算其中的比较符号。
问题是它不会打印'==','> ='或'< ='
我的代码:
from collections import Counter
chars = ['==', '>=', '<=', '<', '>']
file = open(input('specify a file'))
character_distr = Counter()
for line in file:
character_distr += Counter(line.lower())
print('Distribution of characters: ')
for char, count in sorted(character_distr.items()):
if char in chars:
print('{} : {}'.format(char, count))
答案 0 :(得分:1)
试试这个:
c1 = Counter('hello there')
然后试试这个:
c2 = Counter('hello there'.split())
注意区别?当Counter
输入一个字符串时,它会计算个字符。如果您希望计算除个别字符以外的令牌,则需要将split
字符串加入list
。
因此,如果您的运营商之间有方便的空格,请将.split()
添加到line.lower()
然后就可以了。如果没有(当然,这是合法的),你需要使用词法分析器或(更有可能)正则表达式更复杂。
import re
expression = 'if x>4: do_thing(); elif x==12: other_thing = x'
len(re.findall(r'==|>=|<=|<|>',expression))
Out[12]: 2