Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 找到行中的单词并计算行数_Python - Fatal编程技术网

Python 找到行中的单词并计算行数

Python 找到行中的单词并计算行数,python,Python,存档: aaa 012 345 abc deg hij hij aaa 075 aaa 345 658 我试过: filer = file.read().split('\n') count = 0 for line in filer: lines = line.split(' ') for words in lines: #print words, lines.count(words) if words in set(lines):

存档:

aaa 012 345
abc deg hij
hij aaa 075
aaa 345 658
我试过:

filer = file.read().split('\n')
count = 0
for line in filer:
    lines = line.split(' ')
    for words in lines:
        #print words, lines.count(words)
        if words in set(lines):
            count = count + 1
            print words, ', count line: ', count
结果表明:

aaa , count line:  1
012 , count line:  2
345 , count line:  3
abc , count line:  4
deg , count line:  5
hij , count line:  6
hij , count line:  7
aaa , count line:  8
075 , count line:  9
aaa , count line:  10
345 , count line:  11
658 , count line:  12
我想计算并打印包含行中每个单词的行的总数。 (很抱歉我的解释。)

预期成果:

aaa , count line: 3
012 , count line: 1
345 , count line: 2

abc , count line: 1
deg , count line: 1
hij , count line: 2

hij , count line: 2
aaa , count line: 3
075 , count line: 1

aaa , count line: 3
345 , count line: 2
658 , count line: 1
是否建议按原始行的顺序打印预期结果

因为我需要它们来计算“用于行频率的单词的术语频率”


例如:“aaa”的频率将通过使用总行数除以包含单词“aaa”的行数来计算。

您需要将计数与每个单独的变量联系起来。我建议你试试这样的东西

file = open("this.txt",r)
tokenCount = {}

for line in file:
  for token in line.split(' '):
    if token in tokenCount.keys():
      tokenCount[token] += 1
    else:
      tokenCount[token] = 1 

for item in tokenCount:
  print item, ' , count line: ' tokenCount[item]

您的输出有点不必要。它似乎知道一个标记在读取之前出现了多少次,但它看不出有任何必要这样做。

您需要将计数与每个单独的变量联系起来。我建议你试试这样的东西

file = open("this.txt",r)
tokenCount = {}

for line in file:
  for token in line.split(' '):
    if token in tokenCount.keys():
      tokenCount[token] += 1
    else:
      tokenCount[token] = 1 

for item in tokenCount:
  print item, ' , count line: ' tokenCount[item]

您的输出有点不必要。它似乎知道一个标记在读取之前出现了多少次,但它看不出有任何必要这样做。

您需要将计数与每个单独的变量联系起来。我建议你试试这样的东西

file = open("this.txt",r)
tokenCount = {}

for line in file:
  for token in line.split(' '):
    if token in tokenCount.keys():
      tokenCount[token] += 1
    else:
      tokenCount[token] = 1 

for item in tokenCount:
  print item, ' , count line: ' tokenCount[item]

您的输出有点不必要。它似乎知道一个标记在读取之前出现了多少次,但它看不出有任何必要这样做。

您需要将计数与每个单独的变量联系起来。我建议你试试这样的东西

file = open("this.txt",r)
tokenCount = {}

for line in file:
  for token in line.split(' '):
    if token in tokenCount.keys():
      tokenCount[token] += 1
    else:
      tokenCount[token] = 1 

for item in tokenCount:
  print item, ' , count line: ' tokenCount[item]
您的输出有点不必要。它似乎知道一个令牌在读取之前出现了多少次,但却看不出有任何必要这样做。

就是为了这个目的而做的:

from collections import Counter

counter = Counter()

with open('data.txt') as data:
    for line in data:
        counter.update(line.split())

for item, count in counter.items():
    print "%s , count: %s" % (item, count)
输出:

abc, count: 1
aaa, count: 3
345, count: 2
012, count: 1
075, count: 1
hij, count: 2
658, count: 1
deg, count: 1

编辑:我仍然有点不清楚您想要的最终结果是什么,但这会产生您要求的确切输出:

from collections import Counter

line_frequencies = Counter()

with open('data.txt') as data:
    lines = [line.split() for line in data]

for line in lines:
    unique_line = set(line)
    line_frequencies.update(unique_line)


for line in lines:
    for term in line:
        print "%s , count line: %s" % (term, line_frequencies[term])
    print "\n"
其目的是:

from collections import Counter

counter = Counter()

with open('data.txt') as data:
    for line in data:
        counter.update(line.split())

for item, count in counter.items():
    print "%s , count: %s" % (item, count)
输出:

abc, count: 1
aaa, count: 3
345, count: 2
012, count: 1
075, count: 1
hij, count: 2
658, count: 1
deg, count: 1

编辑:我仍然有点不清楚您想要的最终结果是什么,但这会产生您要求的确切输出:

from collections import Counter

line_frequencies = Counter()

with open('data.txt') as data:
    lines = [line.split() for line in data]

for line in lines:
    unique_line = set(line)
    line_frequencies.update(unique_line)


for line in lines:
    for term in line:
        print "%s , count line: %s" % (term, line_frequencies[term])
    print "\n"
其目的是:

from collections import Counter

counter = Counter()

with open('data.txt') as data:
    for line in data:
        counter.update(line.split())

for item, count in counter.items():
    print "%s , count: %s" % (item, count)
输出:

abc, count: 1
aaa, count: 3
345, count: 2
012, count: 1
075, count: 1
hij, count: 2
658, count: 1
deg, count: 1

编辑:我仍然有点不清楚您想要的最终结果是什么,但这会产生您要求的确切输出:

from collections import Counter

line_frequencies = Counter()

with open('data.txt') as data:
    lines = [line.split() for line in data]

for line in lines:
    unique_line = set(line)
    line_frequencies.update(unique_line)


for line in lines:
    for term in line:
        print "%s , count line: %s" % (term, line_frequencies[term])
    print "\n"
其目的是:

from collections import Counter

counter = Counter()

with open('data.txt') as data:
    for line in data:
        counter.update(line.split())

for item, count in counter.items():
    print "%s , count: %s" % (item, count)
输出:

abc, count: 1
aaa, count: 3
345, count: 2
012, count: 1
075, count: 1
hij, count: 2
658, count: 1
deg, count: 1

编辑:我仍然有点不清楚您想要的最终结果是什么,但这会产生您要求的确切输出:

from collections import Counter

line_frequencies = Counter()

with open('data.txt') as data:
    lines = [line.split() for line in data]

for line in lines:
    unique_line = set(line)
    line_frequencies.update(unique_line)


for line in lines:
    for term in line:
        print "%s , count line: %s" % (term, line_frequencies[term])
    print "\n"


建议?你应该试着提出一个具体的问题。什么不起作用?您哪里有问题?使用dict如何?为什么预期输出中包含多次的单词总数?
集合(行)中的单词
不符合您的要求。我仍然不太明白。“将使用总行数除以包含单词‘aaa’的行数来计算‘aaa’的频率。”。这很清楚。但另一句我不明白,特别是“那是在线路频率中使用的”。建议?你应该试着提出一个具体的问题。什么不起作用?您哪里有问题?使用dict如何?为什么预期输出中包含多次的单词总数?
集合(行)中的单词
不符合您的要求。我仍然不太明白。“将使用总行数除以包含单词‘aaa’的行数来计算‘aaa’的频率。”。这很清楚。但另一句我不明白,特别是“那是在线路频率中使用的”。建议?你应该试着提出一个具体的问题。什么不起作用?您哪里有问题?使用dict如何?为什么预期输出中包含多次的单词总数?
集合(行)中的单词
不符合您的要求。我仍然不太明白。“将使用总行数除以包含单词‘aaa’的行数来计算‘aaa’的频率。”。这很清楚。但另一句我不明白,特别是“那是在线路频率中使用的”。建议?你应该试着提出一个具体的问题。什么不起作用?您哪里有问题?使用dict如何?为什么预期输出中包含多次的单词总数?
集合(行)中的单词
不符合您的要求。我仍然不太明白。“将使用总行数除以包含单词‘aaa’的行数来计算‘aaa’的频率。”。这很清楚。但另一句我不明白,尤其是“用于行频率的”。它不能按原行顺序打印出来,对吗?例如aaa 012345::aaa,计数行:3;012,计数行:1;345,计数行:2您还可以向OP教授有关计数器的知识。最常见的()方法是按频率(最频繁的第一个)排序单词。@ThanaDaray它可以做任何您想做的事情。但是,由于您没有多次回答我的问题,即为什么要在输出中输入总计,我真的不太明白您到底想要什么输出以及为什么。@ThanaDaray好的,请相应地更新您的问题(除了示例之外,请给出输出的定义)。@LukasGraf感谢您的回答。我试着去理解他们。从lines=[line.split()for line in data],您能解释一下为什么在for循环之后使用它们而不是生成列表吗。对不起,我要了很多。它不能按原行顺序打印出来,对吗?例如aaa 012345::aaa,计数行:3;012,计数行:1;345,计数行:2您还可以向OP教授有关计数器的知识。最常见的()方法是按频率(最频繁的第一个)排序单词。@ThanaDaray它可以做任何您想做的事情。但是,由于您没有多次回答我的问题,即为什么要在输出中显示总计,我真的不太明白您到底想要什么输出以及为什么。@ThanaDaray好的,请相应地更新您的问题(除了示例之外,请给出输出的定义