【发布时间】:2012-03-20 09:35:40
【问题描述】:
我有一个大文件,其中的条目在 python 中打开为:
fh_in=open('/xzy/abc', 'r')
parsed_in=csv.reader(fh_in, delimiter=',')
for element in parsed_in:
print(element)
结果:
['ABC', 'chr9', '3468582', 'NAME1', 'UGA', 'GGU']
['DEF', 'chr9', '14855289', NAME19', 'UCG', 'GUC']
['TTC', 'chr9', '793946', 'NAME178', 'CAG', 'GUC']
['ABC', 'chr9', '3468582', 'NAME272', 'UGT', 'GCU']
我必须只提取唯一条目并删除 col1、col2 和 col3 中具有相同值的条目。就像在这种情况下,根据 col1、col2 和 col3,最后一行与第 1 行相同。
我试过两种方法都失败了:
方法一:
outlist=[]
for element in parsed_in:
if element[0:3] not in outlist[0:3]:
outlist.append(element)
方法二:
outlist=[]
parsed_list=list(parsed_in)
for element in range(0,len(parsed_list)):
if parsed_list[element] not in parsed_list[element+1:]:
outlist.append(parsed_list[element])
这些都返回所有条目,而不是基于前 3 列的唯一条目。
请给我建议一个这样做的方法
AK
【问题讨论】:
-
不是重复的,因为他的列表是唯一的,仅基于部分数据而不是整个数据集。
标签: python list unique duplicate-removal