提取字符第n次和第(n + 1)次之间的值

时间:2017-07-31 18:05:35

标签: arrays python-3.5

我在csv文件中有多行,每行都看起来像这样

0.10089;0;0;1;0;0;0;0;0;0;-0.9;-0.35;999999;0;0;0;80;81.226;158.25;0;

我必须将值-0.9-0.35999999替换为2*这些值,-0.9变为-1.8 ... < / p>

我已经声明了一个数组sc_pos_array,它存储了每个line中出现的所有分号的索引

sc_pos_array = [i for i,x in enumerate(line) if x == ';']

我知道值0.9出现在10th分号之后,我知道来自10th的{​​{1}}分号的索引。要访问sc_pos_array[9],我会写

0.9

但这似乎不起作用。我正在以下line[sc_pos_array[9]+1]:line[sc_pos_array[10]]循环

中完成所有这些工作

for

1 个答案:

答案 0 :(得分:0)

要访问值0.9:

line[sc_pos_array[9]+1 : sc_pos_array[10]]

以下代码替换值-0.9并将其2x值替换为字符串:

line = line[0:sc_pos_array[9] + 1] + str(2 * float(line[sc_pos_array[9]+1 : sc_pos_array[10]])) + line[sc_pos_array[10]:]
print line

因此输出为:

'0.10089;0;0;1;0;0;0;0;0;0-1.8;-0.35;999999;0;0;0;80;81.226;158.25;0;'