Я пытаюсь оптимизировать свой код и узнал о пониманиях. Но я борюсь со своим кодом и с тем, как применить понимание словаря. Оригинальный код ниже.
Как мне оптимизировать этот код правильным питоническим способом?
all_users = []
for x in range(len(result)):
user = {}
user["fieldy"] = str(result[x][1].get("valueforfield1", None))[3:-2]
user["fieldx"] = str(result[x][1].get("valueforfield2", None))[3:-2]
user["fieldc"] = str(result[x][1].get("valueforfield3", None))[3:-2]
user["fieldv"] = str(result[x][1].get("valueforfield4", None))[3:-2]
user["fieldb"] = str(result[x][1].get("valueforfield5", None))[3:-2]
all_users.append(user)
пример значения результата
result = [('CN=Xxx X,OU=X,OU=X,DC=X,DC=X', {'valueforfield1': [b'Va'], 'valueforfield2': [b'val'], 'valueforfield3': [b'+123'], 'valueforfield4': [b'[email protected]'], 'valueforfield5': [b'examplevalue']}),('CN=Yyy Y,OU=Y,OU=Y,DC=Y,DC=Y', {'valueforfield1': [b'Ycx'], 'valueforfield2': [b'Dy'], 'valueforfield3': [b'+321'], 'valueforfield4': [b'[email protected]'], 'valueforfield5': [b'examplevaluey']})]
после выполнения кода словарь user
имеет следующий контент после первой итерации цикла for
{"fieldy": "Va", "fieldx": "val", "fieldc": "+123", "fieldv": "[email protected]", "fieldb": "examplevalue"}
Также я должен написать функцию для замены кода user["field1"] = str(result[x][1].get("valueforfield1", None))[3:-2]
? Стоит ли и рекомендуется ли? Спасибо!
result
? - person Devesh Kumar Singh   schedule 07.06.2019result
- person RomanPerekhrest   schedule 07.06.2019fieldy
соответствуетvalueforfield1
? по каким критериям? - person RomanPerekhrest   schedule 07.06.2019fieldy
всегда будет принимать значение изvalueforfield1
.valueforfield1
— это имя ключа в словаре изresult
. - person jv95   schedule 07.06.2019result
— это клавиша вродеvalueforfield1
. Тогда как строится словоfieldy
? Должна ли это быть завершающая часть ключаvalueforfield1
: послеvaluefor
-->field1
? - person RomanPerekhrest   schedule 07.06.2019fieldy
— жестко заданное имя. Он не построен никаким кодом. Это имя, которое я дал ключу. Надеюсь, я правильно понял ваш вопрос.? - person jv95   schedule 07.06.2019{"fieldy": "valueforfield1", "fieldx": "valueforfield2", "fieldc": "valueforfield3", "fieldv": "valueforfield4", "fieldb": "valueforfield5", "fieldn": "valueforfield6", }
является правильным сопоставлением для соответствия? - person RomanPerekhrest   schedule 07.06.2019fieldy
должно бытьVa
,fieldx
должно бытьVal
и т. д. Обратите внимание, что KEYfieldy
берет ЗНАЧЕНИЕ из dic, где KEY равноvalueforfield1
. надеюсь теперь понятно? - person jv95   schedule 07.06.2019fieldy
, а затем добавляю к нему значение. Значение берется из ключаvalueforfield1
, который берется изresult
.valueforfield1
всегда будет вresult
. - person jv95   schedule 07.06.2019