新手Python用户在这里。

我有一个文件last.txt,从中提取信息,该文件显示美国最常用的姓氏以及它们以整数/十进制形式显示的百分比频率。我希望能够检索到三个字母长的姓氏并将其分配给答案变量,但是我遇到了困难。我尝试的代码显示如下:

infile = open('last.txt','r' )
content = infile.read()
wordList = content.split()

count = 0

for i in wordList:
    if i != str:
        count += 0
    elif i == len(3):
        count += 1
    else:
        count += 0
answer = count
print(answer)


每当执行代码时,我都以“ 0”结尾,这是不正确的,因为.txt文件中有多个名称,每个名称的长度均为3个字符。

我正在使用的文本文件可以下载[here]

编辑:

这是上面链接的文件的前几行。请注意,这些列由制表符分隔。

SMITH   0.88085
JOHNSON 0.68844
WILLIAMS    0.56866
BROWN   0.51162
JONES   0.50517
MILLER  0.41807
DAVIS   0.39751
GARCIA  0.31817
RODRIGUEZ   0.29813
WILSON  0.29027
MARTINEZ    0.28732
ANDERSON    0.28262
TAYLOR  0.26704
THOMAS  0.26345
HERNANDEZ   0.26185
MOORE   0.259
MARTIN  0.24937
JACKSON 0.24693
THOMPSON    0.23887
WHITE   0.23707
LOPEZ   0.2304
LEE 0.22459

最佳答案

没有可复制的数据,这很难做到。但是首先,如果您要做的只是计数+ = 0,请不要使用条件语句,因为这等于什么都不做。因此,什么也不做!同样,len(3)也会产生错误。 'int'对象没有len()!您应该改为len(i)==3。因此:

infile = open('last.txt','r' )
content = infile.read()
wordList = content.split()

count = 0

for i in wordList:
    if len(i) == 3:
        count += 1
answer = count
print(answer)

10-07 14:48