Улучшенный шаблон проектирования Python при многократном вызове одной и той же функции

В случае, если вы не хотите обновлять Python 3, вы можете использовать подстроки. Например, скажем, что исходный результат был (u'mystring ',). Предположим для примера, что переменная row содержит строку «mystring» без префикса unicode. Тогда вы хотели бы сделать что-то вроде этого:

temp = str(row); #str is not necessary, but probably good practice
temp = temp[:-3];
print = temp[3:];
0
задан student forever 18 January 2019 в 15:20
поделиться

1 ответ

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

student = {
    "firstname": "John",
    "last": "Smith",
    "id": "4815162342",
    "sex": "male",
    "year": "2000"
}

for key, value in student.items():
    persistence.set(value + "." + key, value)

Между прочим, для меня немного необычно, что вы создаете ключи redis путем объединения значения объекта со строкой, указывающей его назначение. Это кажется мне самоубийственным. Вы не сможете получить год Джона Смита, если не знаете, что он хранится под ключом «2000.year», но если вы уже знаете это, то нет смысла получать его из базы данных.

Я не знаю, что такое идиоматическое решение, но может иметь смысл добавлять ключи со значением, уникальным для каждого учащегося. Идентификатор может быть достаточным:

for key, value in student.items():
    persistence.set(student["id"]+ "." + key, value)
0
ответ дан Kevin 18 January 2019 в 15:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: