python计算文字数量与空格出现数次需要一个思路,python文字,Python新手求教,还


Python新手求教,还望详解!

想要实现实现的功能:
统计一个文本中的空格数和数字的个数。

具体如下:
文本:

4 8 15 16 23 42     520 I LOVE LOST.

得出结果:

number_counts = 7space_counts = 13  #42和520之间有5个空格,4~42之间都是一个1个空格

更新部分:
根据 @banagoo 提高的答案,我的代码:(还是有问题?)

import osos.chdir('/Users/apple/Desktop/Python/chapter')file_name = "lost.txt"space_counts = 0number_counts = 0with open(file_name, 'r') as f:      for line in f:            space_counts += len( line.split() )            number_list = [x for x in line.split() if x.isdigit()]            number_counts = len(number_list)print "space_counts", space_countsprint "number_counts",number_counts

文本:

4 8 15 16 23 42     520 I LOVE LOST.4 8 15 16 23 42     520 I LOVE YOU.

发现答案不对呀!求指教?

谢谢 @banagoo 的帮助,可运行的代码如下:

import osos.chdir('/Users/apple/Desktop/Python/chapter')file_name = "lost.txt"space_counts = 0number_counts = 0number_list = []with open(file_name, 'r') as f:    for line in f:        line = line.strip()        space_split_list = line.split(' ')        space_counts += len(space_split_list) - 1        for word in space_split_list:                if word.isdigit():                    number_list.append(word)        number_counts = len(number_list)print "space_counts", space_countsprint "number_counts", number_counts

可以尝试用正则表达式。

input_str = '4 8 15 16 23 42     520 I LOVE LOST.'space_split_list = input_str.split(' ')space_counts = len(space_split_list) - 1number_list = [x for x in space_split_list if x.isdigit()]number_counts = len(number_list)

import osos.chdir('/Users/apple/Desktop/Python/chapter')file_name = "lost.txt"space_counts = 0number_counts = 0with open(file_name, 'r') as f:    for line in f:        line = line.strip()  # 每行行首,行尾的空格会被忽略        space_split_list = line.split(' ')        space_counts += len(space_split_list) - 1        number_list = [x for x in space_split_list if x.isdigit()]        number_counts = len(number_list)print "space_counts", space_countsprint "number_counts", number_counts

编橙之家文章,

评论关闭