import std.algorithm, std.stdio, std.string;
// Count words in a file using ranges.
void main()
{
auto file = File("file.txt"); // Open for reading
const wordCount = file.byLine() // Read lines
.map!split // Split into words
.map!(a => a.length) // Count words per line
.sum(); // Total word count
writeln(wordCount);
}
import std.stdio, std.string;
void main() {
uint[string] dictionary;
foreach (line; File("example.txt").byLine()) {
// Break sentence into words
// Add each word in the sentence to the vocabulary
foreach (word; splitter(strip(line))) {
if (word in dictionary) continue; // Nothing to do
auto newlD = dictionary.length;
dictionary[word] = newlD;
writeln(newlD, '\t', word);
}
}
}
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
unsigned sum = 0;
ifstream file ("file.txt");
for (string word; file >> word;)
++sum;
cout << sum << endl;
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;
int main()
{
set<string> unique_words;
ifstream file ("file.txt");
for (string word; file >> word;)
unique_words.insert(word);
for (auto& word: unique_words)
cout << word << endl;
return 0;
}
with open('test.txt', 'r') as f:
print(sum(len(line.split()) for line in f.readlines()))
with open('test.txt', 'r') as f:
print(sum(map(len, map(str.split, f.readlines()))))
# печатаем уникальные слова(ваш вариант с ошибкой)
with open('test.txt', 'r') as f:
for word in set(word.strip() for word in f.read().split()):
print(word)
# выводим слова и их количество(то, что вы подразумавали)
from collections import defaultdict # словарь, для которого можно указать значения по умолчанию
with open('test.txt', 'r') as f:
words = defaultdict(int) # функция, вызывающаяся для каждого нового ключа, int() возвращает 0
for word in (word.strip() for word in f.read().split()):
words[word] += 1 # можно не проверять на наличие ключа, а сразу инкрементировать, т.к. значение по умолчанию - 0
for word, num in words.items():
print(word, '\t', num)