Я только что начал преподавать Python прошлой ночью через документацию Python, учебники и вопросы SO.Почему не вычисляются мои уникальные целые числа?
До сих пор я могу попросить пользователя открыть файл, открыть и прочитать файл, удалить все # и начать \ n в файле, прочитать каждую строку в массиве и подсчитать количество целых чисел в строке.
Я хочу рассчитать количество уникальных целых чисел в строке. Я понял, что Python использует набор возможностей, которые, как я думал, будут отлично работать для этого вычисления. Тем не менее, я всегда получаю значение больше, чем предыдущее значение (я покажу вам). Я посмотрел на другие сообщения SO, связанные с наборами, и не вижу, чего я не пропущу, и некоторое время был в тупике.
Вот код:
with open(filename, 'r') as file:
for line in file:
if line.strip() and not line.startswith("#"):
#calculate the number of integers per line
names_list.append(line)
#print "There are ", len(line.split()), " numbers on this line"
#print names_list
#calculate the number of unique integers
myset = set(names_list)
print myset
myset_count = len(myset)
print "unique:",myset_count
Для дальнейшего объяснения:
names_list является:
['1 2 3 4 5 6 5 4 5\n', '14 62 48 14\n', '1 3 5 7 9\n', '123 456 789 1234 5678\n', '34 34 34 34 34\n', '1\n', '1 2 2 2 2 2 3 3 4 4 4 4 5 5 6 7 7 7 1 1\n']
и my_set является:
set(['1 2 3 4 5 6 5 4 5\n', '1 3 5 7 9\n', '34 34 34 34 34\n', '14 62 48 14\n', '1\n', '1 2 2 2 2 2 3 3 4 4 4 4 5 5 6 7 7 7 1 1\n', '123 456 789 1234 5678\n'])
выход я получаю это :
unique: 1
unique: 2
unique: 3
unique: 4
unique: 5
unique: 6
unique: 7
Вывод, который должен произойти в:
unique: 6
unique: 3
unique: 5
unique: 5
unique: 1
unique: 1
unique: 7
Любые предложения относительно того, почему мой набор в каждой строке не вычисляя правильное число уникальных целых чисел в каждой строке? Мне также хотелось бы получить какие-либо предложения о том, как улучшить код в целом (если хотите), потому что я только начал изучать Python сам прошлой ночью и буду любить советы. Спасибо.
Благодарим вас за хорошее объяснение. Я сделал изменения, и все отлично работает. Я ценю это. –