Преобразование значения в тексте в словарь

#python #dictionary

Вопрос:

У меня есть текстовый файл, который выглядит так.

 Paul Velma 63.00 Mcgee Kibo 71.00 Underwood Louis 62.75 Clemons Phyllis 57.50  

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

 dt_stu=[] infile = open("C:\UserskwokwDownloads\student_avg.txt",'r') for line in infile:  key,value=line.split([0:9])  dt_stu[key]=value print(dt_stu)  

Комментарии:

1. Каким должен быть ключ и какова должна быть ценность?

Ответ №1:

Вы можете использовать rsplit() с maxsplit=1 для удобного разделения строк

 dt_stu={} for line in infile:  key, value = line.rsplit(maxsplit=1)  dt_stu[key] = value  
 {'Paul Velma': '63.00', 'Mcgee Kibo': '71.00', 'Underwood Louis': '62.75', 'Clemons Phyllis': '57.50'}  

Ответ №2:

str.rsplit() позволяет указать, сколько раз разделять

 s = "a,b,c,d" s.rsplit(',', 1)  

Выход: ['a,b,c', 'd']

Я отредактировал ваш код, попробуйте это:

 dt_stu={} infile = open("draft.txt",'r') for line in infile:  key,value = line.rsplit(' ', 1)  dt_stu[key]=float(value.strip()) print(dt_stu)  

Выход: {'Paul Velma': 63.0, 'Mcgee Kibo': 71.0, 'Underwood Louis': 62.75, 'Clemons Phyllis': 57.5}

Ответ №3:

Используйте метод .split строк для разделения на пробел, т. е. my_string.split(" ") . Затем повторите этот список.

Комментарии:

1. Я использую метод разделения, но я не знаю, как разделить имя и фамилию в качестве ключа, а оценку в качестве значений

2. Когда вы используете .split, вы получите список, например ["Paul", "Velma", "63.00"] . Первые два элемента списка-это ваш ключ, третий — значение

3. но это дает мне ошибку valueerror, говорящую о слишком большом количестве значений для распаковки (ожидается 2), когда я пытаюсь это сделать.