#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), когда я пытаюсь это сделать.