2014-09-29 47 views
0

我從文件中讀取一些數據。文件的每一行都包含10個數字,並將所有行保存在2維列表中。如何刪除2D列表的列中的重複項並將結果作爲另一個列表返回?

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

現在我想刪除此二維列表中第一列的重複項,並將結果作爲列表返回。

是否有一些功能可以做到這一點,或者我應該自己實現嗎?

謝謝你提前!評論後

編輯由 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]

的順序並不重要。

+0

請包括輸入的樣本和用於它的希望的輸出。 – 2014-09-29 15:14:11

回答

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'} 
+0

col1 = set([line.split()[0] for line in data.splitlines()]) – 2014-09-29 15:18:30

+0

@VincentBeltman當然,但爲了教育目的,讓我們分兩步來做。 – 2014-09-29 15:19:15

+0

很快,謝謝! 列表的等價性可能是: 'N = set([line [0] for line in data])' – jsguy 2014-09-29 15:23:50

相關問題