Я пытаюсь создать скрипт, который проходит по списку.
Мне нужно просмотреть конечный список (400) идентификаторов компетенций (например, 124, 129 и т. Д. - обычные целые числа)
Затем у меня есть словарь, в котором записано, какие компетенции есть у каждого пользователя. Ключ - это имя пользователя, а значение для каждого ключа - это список целых чисел (то есть, какие компетенции есть у пользователей)
Например
User x - [124, 198, 2244 ...]
User Y - [129, 254, 198, 2244 ...]
Я собираюсь составить матрицу, подчеркивающую, как часто каждая компетенция встречается с любой другой компетенцией - матрица смежности.
Например, в приведенных выше примерах компетенция 198 встречалась с компетенцией 2244 в двух случаях. В то время как компетенции 254 и 124 никогда не возникали вместе.
Я сейчас использую этот код:
fe = []
count = 0
competency_matches = 0
for comp in competencies_list:
common_competencies = str("")
for comp2 in competencies_list:
matches = int(0)
for person in listx:
if comp and comp2 in d1[person]:
matches = matches + 1
else:
matches = matches
common_competencies = str(common_competencies) + str(matches) + ","
fe.append(common_competencies)
print fe
print count
count = count + 1
Это не работает и просто возвращает количество повторений каждой компетенции в целом. Я думаю, что проблема заключается в строке «if comp и comp2 в d1 [person]:».
Проблема будет, например, если у человека были следующие компетенции [123, 1299, 1236], и я искал компетенцию 123, это будет возвращено дважды, так как это появляется в записях 123 и 1236. Существует ли способ принудительно установить совпадение EXACT при использовании операций if __ и __ then.
Или у кого-нибудь есть предложения по улучшению, как этого добиться ...
Заранее спасибо за любые указатели. Приветствия