我正在寻找在更换其中一个元素后打印元素列表的最正确方法。我可以做如下,但它显然是凌乱的。
#!/usr/bin/python
import sys
file = open(sys.argv[1])
for line in file:
cols = line.split('\t')
if(float(cols[2]) > 97):
print line
else:
print cols[0] + "\tNo_Match\t" + cols[2] + "\t" + cols[3] + "\t" + cols[4] + "\t" + ..... + "\t" +cols[20]
编辑:我刚才意识到情况会更糟,因为我错过了+“\ t”
答案 0 :(得分:4)
这给代码的最后一行提供了相同的行为:
print cols[0] + "\tNo_match\t" + ''.join(cols[2:])
要匹配修改后的代码版本:
print cols[0] + "\tNo_match\t" + '\t'.join(cols[2:])
答案 1 :(得分:3)
您可以使用字符串的join
方法打印列表:
cols[1] = "No_Match"
print '\t'.join(cols)
这将打印由'\ t'分隔的cols的所有条目。
注意我是如何首先替换cols的元素1的。如果你不想这样做,你可以做任何一个
print '\t'.join(cols[0:1]+['No_Match']+cols[2:])
或
print '\t'.join([x if i != 1 else 'No_Match' for i, x in enumerate(cols)])