list_ = [ {'execute_stage': {'name': '目标制定'}, "score": None}, {'execute_stage': {'name': 'asdasd'}, "score": None}, {'execute_stage': {'name': '多人评估'}, 'score': 45.0}, {'execute_stage': {'name': '多人评估'}, 'score': 43.0}, {'execute_stage': {'name': '多人评估'}, 'score': 47.0}, {'execute_stage': {'name': '多人评估'}, 'score': 0.0}, {'execute_stage': {'name': '结果计算'}, 'score': None}, {'execute_stage': {'name': '定案'}, 'score': None} ] 这段代码将 多人评估前面的字段和后面的字典和中间的多人评估分成三个部分
时间: 2023-07-29 19:07:12 浏览: 109
你可以使用循环来遍历列表中的每个字典,然后根据字典中的键值对来分割列表。下面是一个示例代码:
```python
evaluations = []
before_evaluations = []
after_evaluations = []
for item in list_:
if 'execute_stage' in item and item['execute_stage']['name'] == '多人评估':
evaluations.append(item)
elif len(evaluations) == 0:
before_evaluations.append(item)
else:
after_evaluations.append(item)
print(before_evaluations)
print(evaluations)
print(after_evaluations)
```
上述代码中,我们首先定义了三个空列表,分别用于存储多人评估前面的字段、多人评估和多人评估后面的字典。然后我们使用一个循环遍历列表中的每个字典项,判断该项是否为多人评估。如果是多人评估,则将该项添加到评估列表中;否则,如果评估列表为空,则将该项添加到多人评估前面的列表中;否则,将该项添加到多人评估后面的列表中。最后,我们打印出三个列表,以验证分割的结果是否正确。
相关问题
list_=[ { 'execute_stage': { 'name': '目标定制' }, "score":"" }, { 'execute_stage': { 'name': '多人评估' }, "score":99 }, { 'execute_stage': { 'name': '多人评估' }, "score":40 }, { 'execute_stage': { 'name': '多人评估' }, "score":20 }, { 'execute_stage': { 'name': '评审完成' }, "score":" " }, { 'execute_stage': { 'name': '阶段定制' }, "score":"" }, { 'execute_stage': { 'name': '公布完成' }, "score":"" } ] 帮我排序 其他部分保持不变 就只有多人评估这个阶段根据分数进行排序 用python
可以使用Python的`sorted()`函数来对列表进行排序,同时结合lambda表达式指定排序规则。具体如下:
```
sorted_list = sorted(list_, key=lambda x: x["score"] if isinstance(x["score"], int) else -1, reverse=True)
```
其中,`key`参数指定了排序规则,使用lambda表达式对每个字典元素的"score"字段进行判断,如果是整数则使用该值进行排序,否则将其排在最后(即分数为""或其他非整数类型)。`reverse`参数指定了是否倒序排序,这里设置为True表示按降序排列。排序后的结果将保存在`sorted_list`变量中。
解释下面代码:def execute(sheet_name, path=None): file_object = ExcelReader(path, sheet_name=sheet_name) data = file_object.get_case_data() for i in data: action = i["action"] action_values = i.get("action_values", [None]) print("数据action_values:",action_values) print("数据action:",action) keys_func = getattr(KeyWords, action) # 得到关键字函数 keys_func(**action_values)
这段代码定义了一个名为execute的函数,它需要两个参数: sheet_name表示要处理的表格名,path表示表格文件的路径。在函数中,首先创建一个ExcelReader对象file_object,用于读取指定的表格文件。然后通过调用get_case_data()方法,获取表格中所有测试用例数据。接着,使用for循环遍历数据,获取每个测试用例的操作及其对应的参数。然后使用getattr()函数,从KeyWords模块中获取对应的关键字函数,并将参数作为关键字参数传递给该函数。函数中还会输出每个测试用例的操作及其参数,方便调试和跟踪。
阅读全文