小编lot*_*boy的帖子

基于python中的模板文件从文件中解析信息

我有一堆文本文件,格式都一样(这是下面的一个片段,真实文件更长):

Molecular weight = 43057.32         Residues = 391   
Average Residue Weight  = 110.121   Charge   = -10.0
Isoelectric Point = 4.8926

Residue     Number      Mole%       DayhoffStat
A = Ala     24      6.138       0.714   
B = Asx     0       0.000       0.000   
C = Cys     9       2.302       0.794   

Property    Residues        Number      Mole%
Tiny        (A+C+G+S+T)     135     34.527
Small       (A+B+C+D+G+N+P+S+T+V)   222     56.777
Aliphatic   (A+I+L+V)       97      24.808
Run Code Online (Sandbox Code Playgroud)

我必须提取所有这些变量并处理它们。我打算编写一些代码,一次遍历每一行,并通过一系列 split、strip 等函数提取相关信息。

这是人们用 python 做的一项非常常见的任务,所以我开始认为必须有一个更简单的方法。

是否有任何模块或方法可以允许以下内容:

template = """
Molecular weight = {0}          Residues = {1}   
Average Residue Weight  = {2} …
Run Code Online (Sandbox Code Playgroud)

python regex

5
推荐指数
1
解决办法
1510
查看次数

在创建对象向量时,唯一地为每个对象调用默认对象构造函数

我正在尝试创建一个对象向量,并希望为向量中的每个对象唯一地调用非默认构造函数.我在下面有一个简化的例子.

在我的例子中,我有一个带有两个构造函数的对象,默认(无args)和非默认(1 arg).当我使用默认构造函数(v1)初始化大小为10的向量时,构造函数被调用10次(随机数可以看到).但是,当我尝试使用对象非默认构造函数(v2)初始化向量时,对象构造函数被调用一次,并且此对象被复制到向量中的其余元素(x不再是许多不同的随机数).

是否可以初始化N个对象的向量,以便为每个对象调用每个对象的非默认构造函数?

示例代码:

#include <vector>
#include <iostream>
#include <cstdlib>

struct Obj {
    int x;

    Obj() {
        x = rand() % 5;
    }

    Obj(int max_x) {
        x = rand() % max_x;
    }
};

int main() {
    std::vector<Obj> v1(10);     // Default constructor
    std::vector<Obj> v2(10, 5);  // Non-Default Constructor

    for(int i=0; i<10; ++i) {
        std::cout << v1[i].x << ", " << v2[i].x << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

3, 2
1, 2
2, 2
0, 2
3, 2
0, 2
1, 2 …
Run Code Online (Sandbox Code Playgroud)

c++ vector

4
推荐指数
1
解决办法
102
查看次数

标签 统计

c++ ×1

python ×1

regex ×1

vector ×1