如何删除2D列表中的重复项并将结果作为另一个列表返回?

时间:2014-09-29 15:12:11

标签: python

我从文件中读取了一些数据。该文件的每一行包含10个数字,我将所有行保存在二维列表中。

data = []
with open(args.input, 'r') as f:
   for line in itertools.islice(f, 0, None):
    items = line.split()[1:]
    data.append(items)

现在我要删除此2d列表中第一列的重复项,并将结果作为列表返回。

是否有某些功能可以做到这一点,还是应该自己实现?

提前谢谢你!

Tichodroma评论后进行修改:

示例输入:

1 2 3 1 1 9 9 9 9 9
1 1 1 1 1 1 1 1 1 1
2 2 3 3 3 3 3 3 3 3
3 2 3 3 3 3 3 3 3 3
2 3 3 4 3 3 2 3 4 3

第一列包含[1 1 2 3 2]

我想要[1 2 3]

订单并不重要。

1 个答案:

答案 0 :(得分:1)

data = """1 2 3 1 1 9 9 9 9 9
1 1 1 1 1 1 1 1 1 1
2 2 3 3 3 3 3 3 3 3
3 2 3 3 3 3 3 3 3 3
2 3 3 4 3 3 2 3 4 3"""

col1 = [line.split()[0] for line in data.splitlines()]
# col1 == ['1', '1', '2', '3', '2']

print(set(col1))

输出:

{'1', '2', '3'}