Python:分配列id并根据列位置和id执行计算

2024-05-15 08:26:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个只有几百行的文件上迭代。每一行上的数据都是以制表符分隔的,基本上是(实际上每行大约有50个条目,但你已经明白了)

ID_value ctrl_val_A ctrl_val_B ctrl_val_C cond1_val_A cond1_val_B cond1_val_C cond2_val_A cond2_val_B cond2_val_C

在每一行上,我都要对condx\u val\u y(cond/ctrl)中的每一个执行一个简单的计算。诀窍是我只想使用相关控件(A、B或C)进行计算

我不知道最好的方法(最Python)做到这一点。我一直在用line.split('\t')将该行推入列表,但也许列表理解不是最好的方法

我相信有一个简单的解决办法,我只是没有使用正确的搜索词或东西。任何帮助都将不胜感激

提前谢谢


Tags: 文件数据方法id列表value条目val
1条回答
网友
1楼 · 发布于 2024-05-15 08:26:54

您的项以三对对齐,因此您可以使用模数运算符(%)为条件选择正确的值

values = [Avalue, Bvalue, Cvalue]
0 % 3 = 0 # values[0 % 3] => select A
1 % 3 = 1 # select B
2 % 3 = 2 # select C
3 % 3 = 3 # select A again
4 % 3 = 4 # select B again...
# ...

示例代码:

#!/usr/bin/env python2.7
# encoding: utf-8
'''
'''
FNAME = ...
for line in open(FNAME):
    row = line.split('\t')
    values = row[1:4]
    conditions = row[4:]

    for i, cond in enumerate(conditions):
        v = values[i % 3]
        # use cond and v to calculate your value

相关问题 更多 >