Каков был бы самый pythoni c способ поиска элементов из списка OrderedDict? - PullRequest
0 голосов
/ 04 марта 2020

У меня есть список упорядоченных диктов, которые отображают информацию о курсах. Это выглядит так:

[
...
OrderedDict([('c_number', '506'), ('c_name', 'Learning and Cognition'), ('c_category', 'B'), ('c_credits', '4')]),
OrderedDict([('c_number', '504'), ('c_name', 'Research Design'), ('c_category', 'A'), ('c_credits', '4')]), 
OrderedDict([('c_number', '616'), ('c_name', 'Research Techniques for Non-Experimental Social Sciences'), ('c_category', 'A'), ('c_credits', '4')]),
...
]
  1. Мне нужно найти способ доступа ко всем значениям столбца, без итерации над рядами. Есть ли способ сделать это без итерации по каждой строке?

  2. Есть ли какая-либо другая структура данных, которую я должен использовать для хранения всех этих данных, что облегчит работу с ними ?

Я хочу сделать следующие операции:

  • найти, есть ли конкретный номер_курса в списке
  • суммировать кредиты для определенную категорию курсов
  • узнайте, достаточны ли курсы в списке для выполнения предварительных требований

Любые предложения и идеи приветствуются.

1 Ответ

0 голосов
/ 04 марта 2020

Вот первый шаг в создании облегченной базы данных для ваших данных, которая легко запрашивается с помощью SQL:

import sqlite3
DBNAME = "course_catalog.db"

def create_table():
    with sqlite3.connect(DBNAME) as conn:
        curs = conn.cursor()
        sql = """CREATE TABLE IF NOT EXISTS courses
        (
            id integer primary key,
            c_number TEXT
            c_name TEXT
            c_category TEXT
            c_credits INTEGER
        )
        """
        curs.execute(sql)            

См. Например: https://www.sqlitetutorial.net/sqlite-python/creating-database/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...