Как преобразовать таблицу из нескольких столбцов в словарь в Python - PullRequest
0 голосов
/ 21 марта 2019

Имя Возраст Класс

Иаков 10 60

Иоанна 11 75

Мэтт 13 81

Если бы выше был текстовый файл в блокноте, как бы я преобразовал это в словарь вида:

{'Jacob':{ 'Age': '10', 'Grade': 60}, 'John':{'Age': '11', 'Grade': 75}, 'Matt': {'Age': '13', 'Grade': 81}}

В питоне?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Часть, которую вы, вероятно, упускаете, - это разбиение строк по пробелам.

data = {}
with open('textfile') as fh:
    for line in fh:
        name, age, grade = line.split()
        data[name] = { 'age': age, 'grade': grade}
0 голосов
/ 21 марта 2019

Решение с использованием групп регулярных выражений

import re

# Read File into variable 
file = "Name Age Grade Jacob 10 60 John 11 75 Matt 13 81"

# Match Name, age, Grade
pattern = re.compile(r'([A-z]+)\s([0-9]+)\s([0-9]+)')

# Create Dictionary Placeholder
dictionary = {}

# For each match split groups into separate vars
for name, age, grade in re.findall(pattern, file):

    # Add To Dictionary
    dictionary[name] = {
        'Age':age,
        'Grade':grade
    }

print(dictionary)

Выходы

{'Jacob': {'Age': '10', 'Grade': '60'}, 'John': {'Age': '11', 'Grade': '75'}, 'Matt': {'Age': '13', 'Grade': '81'}}

Чтобы прочитать текст в переменную

file = open('textdocument.txt', 'r').read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...