Здравствуйте, у меня есть проблема с моим кодом для проекта, над которым я работаю. В настоящее время я пытаюсь манипулировать словарями и добавлять в них вещи, но с моим кодом происходит что-то странное. Первый шаг к моей функции взять текстовый файл, который выглядит следующим образом:Добавление элементов в словарь
A;X;Y;Z
B;Y;Z;X
C;Y;Z;X
D;Z;X;Y
E;Z;X;Y
Я тогда взять строки текста и поместить их в словарь. Пример:
defaultdict(<class 'set'>, {'E': {'Z', 'X', 'Y'}, 'C': {'Y', 'Z', 'X'}, 'A': {'X', 'Y', 'Z'}, 'D': {'Z', 'X', 'Y'}, 'B': {'Y', 'Z', 'X'}})
Я написал цикл, чтобы сделать это, но проблема у меня в том, что при добавлении элементов словаря код путает значения в словаре по какой-то причине.
def read_voter_preferences(file : open):
votes_dict = defaultdict(set)
for line in file:
line = line.strip().split(";")
for i in range(1,4):
print(votes_dict)
votes_dict[line[0]].add(line[i])
return votes_dict
Выход заключается в следующем: defaultdict(<class 'set'>, {'E': {'X', 'Y', 'Z'}, 'C': {'X', 'Y', 'Z'}, 'A': {'X', 'Y', 'Z'}, 'D': {'X', 'Y', 'Z'}, 'B': {'X', 'Y', 'Z'}})
Когда код добавляет элементы в словарь, он смешивает порядок элементов словаря, который имеет важное значение для данного конкретного проекта. Как это исправить? Производит ли .add() сортировку элементов в списке? Спасибо!
Я не знал этого о наборах. Спасибо огромное! – user3593892
@ user3593892, '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' –