我想打印列标题,数据列中的条目与其余列条目匹配。
我有以下格式的文本文件(test1.txt):
data a1 a2 a3 a4
a bb aa cc dd
a bb cc aa dd
b bb cc cc dd
b bb bb cc bb
预期输出:
a2, a3, a1, a1, a2, a4
我在做什么:
with open("test1.txt",'rU') as ij:
i = ij.readlines()
for j in i:
j = j.rstrip().split('\t')
for r in j[1:]:
if r.startswith(str(j[0])):
print(r)
我得到的是什么
aa
aa
bb
bb
bb
bb
有什么提示吗?谢谢
答案 0 :(得分:0)
原因是因为您正在打印r
,它的值与当前data
的值匹配,而不是与列标题匹配。
要获取列标题,请阅读第一行并将其保留为列表。然后在找到匹配项时打印标题值
with open("test1.txt",'rU') as ij:
firstLine = ij.readline()
headers = firstLine.rstrip().split('\t')[1:] # get headers
i = ij.readlines() # read the rest of the data
for j in i:
j = j.rstrip().split('\t')
for r in range(len(j[1:])): # loop based on index
if j[1+r].startswith(str(j[0])): # use j[1+r]
print(headers[r]) # print headers instead