在 Python 中列出需要的帮助:如何避免调用重复代码
List in Python help needed: how to Avoid calling repetitive code
我的函数如下所示:
def _extract_parent(matched_list, json_data, info_type):
return [json_data[match_lst][info_type] for match_lst in matched_list]
parent_lst = list(map(lambda x: _extract_parent(x,json_data, "parent_info"), flashtext_matched_pattern))
family_lst = list(map(lambda x: _extract_parent(x, json_data, "family_info"),flashtext_matched_pattern))
这段代码对我有用。但我想优化它
我一直从外部调用映射,而不是我想在 _extract_parent 函数内部进行映射并调用函数
res = _extract_parent(flashtext_matched_pattern, json_data, "parent_info")
我的 JSON 看起来像这样:
{ "power series": {
"parent_info" : "abc",
"family_info" : "xyz",
"base_info" : "pqr"
}
}
flashtext_matched_pattern 是一个列表列表,如下所示。它可以有空列表以及示例中显示的值
[[],
['power series'],
[],
[],
[],
[]]
因此,如果幂级数匹配,它会给我我请求的信息示例 parent_info 或 family_info。
现在想优化一下代码。我想扩充 _extract_parent 函数以包含映射部分,并调用 _extract_parent 函数,如
parent_lst = _extract_parent(flashtext_matched_pattern, json_data, "parent_info")
family_lst = _extract_parent(flashtext_matched_pattern, json_data, "family_info")
我怎样才能做到这一点?在这方面的任何帮助将不胜感激
还是我想错了方向,这会是更好的解决方案吗?如果对于每个匹配条目,return 一个包含元数据父项、家族和基本信息的元组。 (如果是的话怎么做)
您通过 map
和 lambda
调用代码的长语句只是进行另一个列表理解的一种不方便的方式:
parent_lst = [_extract_parent(x,json_data, "parent_info")
for x in flashtext_matched_pattern]
如果您想在函数中执行所有操作,可以使用嵌套列表理解来实现:
def _extract_parent(list_of_match_lists, json_data, info_type):
return [
[json_data[match][info_type] for match in match_list]
for match_list in list_of_match_lists
]
我的函数如下所示:
def _extract_parent(matched_list, json_data, info_type):
return [json_data[match_lst][info_type] for match_lst in matched_list]
parent_lst = list(map(lambda x: _extract_parent(x,json_data, "parent_info"), flashtext_matched_pattern))
family_lst = list(map(lambda x: _extract_parent(x, json_data, "family_info"),flashtext_matched_pattern))
这段代码对我有用。但我想优化它 我一直从外部调用映射,而不是我想在 _extract_parent 函数内部进行映射并调用函数
res = _extract_parent(flashtext_matched_pattern, json_data, "parent_info")
我的 JSON 看起来像这样:
{ "power series": {
"parent_info" : "abc",
"family_info" : "xyz",
"base_info" : "pqr"
}
}
flashtext_matched_pattern 是一个列表列表,如下所示。它可以有空列表以及示例中显示的值
[[],
['power series'],
[],
[],
[],
[]]
因此,如果幂级数匹配,它会给我我请求的信息示例 parent_info 或 family_info。
现在想优化一下代码。我想扩充 _extract_parent 函数以包含映射部分,并调用 _extract_parent 函数,如
parent_lst = _extract_parent(flashtext_matched_pattern, json_data, "parent_info")
family_lst = _extract_parent(flashtext_matched_pattern, json_data, "family_info")
我怎样才能做到这一点?在这方面的任何帮助将不胜感激
还是我想错了方向,这会是更好的解决方案吗?如果对于每个匹配条目,return 一个包含元数据父项、家族和基本信息的元组。 (如果是的话怎么做)
您通过 map
和 lambda
调用代码的长语句只是进行另一个列表理解的一种不方便的方式:
parent_lst = [_extract_parent(x,json_data, "parent_info")
for x in flashtext_matched_pattern]
如果您想在函数中执行所有操作,可以使用嵌套列表理解来实现:
def _extract_parent(list_of_match_lists, json_data, info_type):
return [
[json_data[match][info_type] for match in match_list]
for match_list in list_of_match_lists
]