Найти уникальные символы в файле - PullRequest
15 голосов
/ 23 декабря 2008

У меня есть файл с 450 000+ строк записей. Каждая запись имеет длину около 7 символов. То, что я хочу знать, это уникальные символы этого файла.

Например, если бы мой файл был следующим:

Entry
-----
Yabba
Dabba
Doo

Тогда результат будет

Уникальные символы: {abdoy}

Заметьте, меня не волнует дело, и мне не нужно заказывать результаты. Что-то подсказывает мне, что это очень легко решить людям с Linux.

Обновление

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

Обновление 2

Под Быстро я имею в виду быстрое внедрение ... не обязательно быстрое выполнение.

Ответы [ 21 ]

0 голосов
/ 23 декабря 2008

Python с использованием словаря. Я не знаю, почему люди так привязаны к наборам или спискам для хранения вещей. Предоставленный набор, вероятно, более эффективен, чем словарь. Однако для доступа к предметам обоим необходимо постоянное время. И оба бегают по кругу вокруг списка, где для каждого символа вы ищите список, чтобы увидеть, есть ли этот символ в списке или нет. Также списки и словари встроены в типы данных Python, которые каждый должен использовать каждый. Так что, даже если набор не приходит в голову, словарь должен.

file = open('location.txt', 'r')
letters = {}
for line in file:
  if line == "":
    break
  for character in line.strip():
    if character not in letters:
      letters[character] = True
file.close()
print "Unique Characters: {" + "".join(letters.keys()) + "}"
...