计算文本文件中的比较符号

时间:2013-11-04 19:44:38

标签: python file python-3.x counter

我的任务之一遇到了问题。

我应该写一个代码,如果它需要一个文本文件并计算其中的比较符号。

问题是它不会打印'==','> ='或'< ='

我的代码:

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

1 个答案:

答案 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