2015-08-03 2 views
1

У меня есть следующий список, исходящий из файла. то, что я хочу один из списка этого файла, который containts много значений дублируют друг такжеКак найти уникальные значения в списке python

['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['S', 'F', '3', '\n'] 
['7', '3', '4', '\n'] 
['7', '3', '4', '\n'] 
['7', '3', '4', '\n'] 
['7', '3', '4', '\n'] 

Как отфильтровать только уникальные значения.

import os 
os.chdir('C:\\') 
if os.path.exists('xxx.dat'): 
    airport = open('routes.dat') 
    for each_line in airport: 
     (Airlinecode,AirlineID,Source_airport_code,Source_airport_ID,Destination_airport,Destination_airport_ID,Codeshare,Stops,Equipment) = each_line.split("\t") 
     newlist =[] 
     newlist = Equipment 
     i = iter(newlist) 
     elements = [] 

     for eachitem in range(len(newlist)): 
      elements.append(i.next()) 
     print (elements) 
    airport.close() 

else: 
    print('file does not exists') 

ответ

1

Для чего-то вроде этого, где вы создаете список списков в качестве выходных данных, вы не можете просто поместить элементы в наборе (который не допускает дубликатов) в списки unhashable. Что вы могли бы сделать это при создании списка, сделать что-то вроде:

seen = set() 
key = "".join(newlist) 
if key not in seen: 
    seen.add(key) 
    output.append(newlist) 

Если по каким-то причинам вы не можете сделать это во время первой итерации через текстовый файл и имеете доступ только к значениям выходного массива, то вы могли бы цикл через ваш выход, делая подобный метод и просто сохраняйте уникальные значения.

+0

Спасибо большое Аарон, –

Смежные вопросы