删除邻居列中存在的值

时间:2014-11-07 07:44:01

标签: python python-3.x

您好我正在尝试编写一个python3脚本,该脚本将删除其他列中的值。

例如:

A   A,B,C
T   H,D,T
H   A,H,D,C

将是:

A   B,C
T   H,D
H   A,D,C

假设这些是我的数据表的第4(ref)和第5(alt)列 我写了以下代码:

with open(two) as infile, open (three, 'w') as outfile:
    reader = csv.reader(infile, delimiter='\t')
    writer = csv.writer(outfile, delimiter='\t')
    for g, pos, code, ref, alt, *rest in reader:
        a = alt.split(',')
        if a == ref:
            writer.writerow([g, pos, code, ref, [alt-ref]] + rest)
        if a != ref:
            writer.writerow([g, pos, code, ref, alt] + rest)

所以我打算这样写 如果“ref”中的字母等于“alt”中的任何分割字符串,则该值将从“alt”中删除并导出。 如果不是,则按原样导出行。 [alt-ref]似乎不起作用。

有人可以帮我完成此代码吗? 我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

你应该使用类似的东西,

[x for x in alt if x != ref]

创建没有值ref`

的新列表