Хорошо, прежде всего, если вы используете формат csv, убедитесь, что вы разделяете значения запятыми (csv = значения, разделенные запятыми).Поэтому измените file1 и file2 на это:
David
Lennon
и
David,0.3
Lennon,1.3
Wright,2.5
Хорошо, так что вы хотите получить только имена данных, которые присутствуют в file1 из file2, если я прав,Я изменил имена переменных на менее загадочные, потому что я не понимал, что вы подразумеваете под ними, но я сохранил последний словарь как diff (желаемый вывод) для ясности.
Теперь Чтение имен изfile1 и поместите их в список с readlines, однако там все еще есть некоторые нежелательные вещи в "\ n".Я заменяю символ новой строки ни на что в цикле for, после создания из него списка останутся только имена.
with open ("file1.csv") as file1:
data_file1 = [name.replace("\n", "") for name in file1.readlines()]
Для файла2, выполняющего ту же функцию и создающего список, разделенныйзапятая так, «Давид, 0,3» становится [«Давид», «0,3»].Обратите внимание, что тип значений по-прежнему является строкой.
with open ("file2.csv") as file1:
data_file2 = [name.replace("\n", "").split(",") for name in file1.readlines()]
Теперь сравниваем данные из файла1 и файла2:
diff = {}
for line in data_file2:
if line[0] in data_file1:
diff[line[0]] = line[1]
Здесь строка [0] - это имя и строка [1] соответствующее значение для этого имени.
Теперь diff должно вернуть
>>> diff
{'David': '0.3', 'Lennon': '1.3'}
Cheers, Jelle