我试图优化我的代码,我发现了关于理解。但是我正在努力学习我的代码以及如何应用字典理解。 原始代码如下。你知道吗
如何以一种合适的pythonic方式优化此代码?你知道吗
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'65@test.com'], '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'64@test.com'], 'valueforfield5': [b'examplevaluey']})]
在执行代码之后,user
字典在for循环的第一次迭代之后具有以下内容
{"fieldy": "Va", "fieldx": "val", "fieldc": "+123", "fieldv": "65@test.com", "fieldb": "examplevalue"}
我还应该写一个函数来替换user["field1"] = str(result[x][1].get("valueforfield1", None))[3:-2]
代码吗?值得推荐吗?
谢谢!你知道吗
仅使用听写理解来处理重复的代码:
使用列表理解和听写理解在一行中完成:
您提供的示例中的困难在于键的名称—但由于它们是常规的,所以我使用了一个格式字符串来插入键所期望的整数(即,当
i = 1
时f"field{i}"
解析为"field1"
,当i = 2
时"field2"
,等等)。你知道吗一般来说,理解并不是为了提高速度而进行优化,而是为了避免代码重用。你知道吗
采用充分考虑因素的方法:
输出:
相关问题 更多 >
编程相关推荐