这篇文章主要讲解了“Python文本查询代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python文本查询代码怎么写”吧!
//文本查询
// 要做的事情
// 1、把一个文本 的每一行 放入 vector 中。
// 2、记录每一个单词的行号
// 3、根据行号输出每行单词。
class TextQuery
{
public:
typedef vector<string>::size_type line_no;
void store_file( ifstream& is);
set<line_no>print_lineno(string& )const;
stringprint_linestring(line_no)const ;
private:
vector<string>line_of_text;
map<string , set<line_no> >word_map;
};
void TextQuery::store_file(ifstream& is)
{
string word;
while ( getline( is,word ) )
{
line_of_text.push_back(word);
}
line_no num;
for( num=0; num != line_of_text.size(); ++num )
{
string line, tempword;
istringstream istream(line_of_text[num]);
while ( istream>> word)
{
word_map[word].insert(num);
}
}
}
set<line_no> TextQuery::print_lineno(string& str)
{
map<string, set<line_no> >::iterator iter = word_map.find(str);
if (iter == word_map.end())
{
return set<line_no>();
}
return iter->second;
}
string TextQuery::print_linestring(line_no num)
{
if ( num< line_of_text.size())
{
return line_of_text[num];
}
}
void print_result(const set<TextQuery::line_no>& los, const string& str, const TextQuery & textclass)
{
cout<<"str:"<<str<<"total num:"<<los.size()<<endl;
set<TextQuery::line_no>::iterator iter=los.begin();
for (; iter != los.end();++iter)
{
cout<< *iter+1 <<textclass.print_linestring(*iter)<<endl;
}
}
void main( void )
{
}
感谢各位的阅读,以上就是“Python文本查询代码怎么写”的内容了,经过本文的学习后,相信大家对Python文本查询代码怎么写这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。