Python-VBA函数之旅-min函数

目录

一、min函数的常见应用场景

二、min函数使用注意事项

三、如何用好min函数?

1、min函数:

1-1、Python:

1-2、VBA:

2、推荐阅读:

个人主页:神奇夜光杯-CSDN博客 

一、min函数的常见应用场景

        min()函数是Python中的一个内置函数,它用于返回可迭代对象中的最小值。常见的应用场景有:

1、查找最小值:这是min()函数最直接的应用,你可以使用它来查找列表中/字典中/多个值中/默认排序不可行的对象中/嵌套结构中的最小值。

2、使用自定义函数:你可以通过key参数传递一个函数给min(),该函数将应用于可迭代对象的每个元素,然后min()函数将返回使该函数结果最小的元素,这可以用于复杂对象的比较。

3、与生成器表达式结合使用:min()函数可以与生成器表达式结合使用,以在不需要完整列表的情况下找到最小值。

4、数据分析和处理:在处理大量数据时,经常需要找出最大值或最小值,min()函数在这方面非常有用,特别是在与pandas等数据处理库结合使用时。

5、算法与编程:在解决一些算法问题时,可能需要查找数组或列表中的最小值,min()函数可以简化这些操作,使代码更加简洁和易读。

        总之,min()函数在Python编程中有广泛的应用,可以帮助你快速找到可迭代对象中的最小值,简化代码并提高效率。

二、min函数使用注意事项

        在Python中使用min()函数时,需要注意以下事项:

1、参数类型:min()函数可以接受任意数量的参数,这些参数可以是数字、字符串、列表、元组或其他可迭代对象。但是,如果参数是不可迭代的,或者无法进行比较(例如,尝试比较数字和字符串),那么min()函数将抛出异常。

2、空迭代对象:如果传递给min()函数的迭代对象为空(例如空列表或空元组),min()函数将抛出ValueError异常,在尝试找到空集合中的最小值之前,你应该检查集合是否为空。

3、自定义对象:如果你尝试在自定义对象上使用min()函数,并且这些对象没有定义比较方法(如`__lt__()`、`__eq__()`等),Python将不知道如何比较它们,从而抛出TypeError异常;为了能够在自定义对象上使用min()函数,你需要确保这些对象实现了适当的比较方法。

4、使用key参数:当处理复杂对象或需要基于对象的某个属性或方法进行比较时,使用key参数非常有用,但是,你需要确保传递给key的参数是一个函数,该函数接受一个参数并返回一个用于比较的值。如果传递的不是函数,或者函数返回的值不可比较,min()函数将抛出异常。

5、效率问题:对于大型数据集,使用min()函数可能不是最高效的方法,特别是当数据集已经排序时,在这种情况下,你可能希望使用其他方法(如直接访问已排序列表的第一个元素)来找到最小值,以提高效率。

6、与max()函数的区别:min()函数与max()函数在功能上相反,max()函数返回可迭代对象中的最大值,在使用时,请确保你选择了正确的函数来实现你的需求。

7、返回值:min()函数返回可迭代对象中的最小值,如果有多个元素具有相同的最小值,它将返回第一个找到的最小值。

        总之,了解这些注意事项可以帮助你更有效地使用min()函数,并避免在编程过程中遇到不必要的错误或问题。

三、如何用好min函数?

        要用好Python中的min()函数,你需要理解其工作原理和参数,并知道如何在不同的情况下有效地使用它。以下是一些建议,帮助你更好地利用min()函数

1、理解基本用法:min()函数的基本用法是传入一个或多个参数,返回其中的最小值,如果传入的是序列(如列表、元组等),则返回序列中的最小值。

2、利用key参数:当你需要基于对象的某个属性或计算结果来比较对象时,可以利用key参数,例如,在字典列表中找出具有最小值的项。

3、处理空迭代对象:当传递给min()函数的迭代对象为空时,它会抛出ValueError异常;为了避免这种情况,你可以在调用min()之前检查迭代对象是否为空。

4、结合其他函数使用:min()函数可以与其他Python函数和特性结合使用,以实现更复杂的逻辑。例如,你可以使用列表推导式或生成器表达式来预处理数据,然后再传递给min()函数。

5、理解返回类型:min()函数返回的是序列中的最小值,其类型与序列中的元素类型相同,如果传入多个不同类型的参数,Python会尝试进行类型转换以便比较,这可能会导致意外的结果,确保传入的参数类型是可以直接比较的。

6、避免不必要的调用:如果你知道序列已经排序,或者你知道最小值的位置(例如,在已知的数据结构中),那么直接访问该值可能比使用min()函数更高效。

7、检查输入有效性:在使用min()函数之前,确保你的输入是有效的,例如,如果你期望一个数字列表,但得到了一个包含非数字元素的列表,那么min()函数将抛出异常,你可以使用类型检查或异常处理来确保输入的有效性。

8、阅读文档和示例:Python的官方文档通常包含关于函数的详细信息和示例,阅读min()函数的文档可以帮助你更好地理解其工作原理和最佳实践。

        总之,只有通过遵循这些建议,你才能更加有效地使用Python中的min()函数,并避免常见的错误和问题。

1、min函数:
1-1、Python:
# 1.函数:min
# 2.功能:用于获取传入的多个参数的最小值,或者传入的可迭代对象(或之中的元素)的最小值
# 3.语法:
# 3-1、min(iterable, *, key=None)
# 3-2、min(iterable, *, default=None, key=None )
# 3-3、min(arg1, arg2, *args, key=None)
# 4.参数:
# 4-1、iterable:可迭代对象,如列表、元组、集合、字典、字符串等
# 4-2、key:命名参数,一个可选的函数,用来指定获取最小值的方法
# 4-3、default:命名参数,用来指定最小值不存在时返回的默认值.如果未提供且iterable为空,则会引发ValueError
# 4-4、arg:指定数值
# 5.返回值:
# 5-1、如果iterable非空,则返回iterable中的最小值
# 5-2、如果iterable为空且提供了default参数,则返回default的值
# 5-3、如果iterable为空且未提供default参数,则引发ValueError
# 5-4、返回给定参数的最小值
# 6.说明:使用min()函数
# 6-1、如果是数值型参数,则取数值最小者
# 6-2、如果是字符型参数,则取字母表排序靠前者
# 6-3、当存在多个相同的最小值时,则返回得是最先出现的那个最小值
# 6-4、当key=lambda时,不论匿名函数如何处理参数,返回的不是处理后的结果,而是结果对应的参数本身,即匿名函数lambda的处理结果,只能充当参数用
# 7.示例:
# 用dir()函数获取该函数内置的属性和方法
print(dir(min))
# ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
# '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__',
# '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__',
# '__str__', '__subclasshook__', '__text_signature__']

# 用help()函数获取该函数的文档信息
help(min)

# 应用一:查找最小值
# 示例1:查找列表中的最小值
numbers = [3, 5, 10, 8, 6, 11, 24]
min_number = min(numbers)
print(min_number)
# 3

# 示例2:查找字符串中的最小字符(按ASCII值)
characters = "myelsa"
min_char = min(characters)
print(min_char)
# a

# 示例3:使用key参数查找最小元素(根据自定义标准)
students = [
    {'name': 'Myelsa', 'score': 98},
    {'name': 'Bruce', 'score': 92},
    {'name': 'Jimmy', 'score': 88}
]
# 查找分数最低的学生
lowest_scoring_student = min(students, key=lambda student: student['score'])
print(lowest_scoring_student)
# {'name': 'Jimmy', 'score': 88}

# 示例4:处理空列表并返回默认值(使用try-except)
numbers = []
default_value = 0
try:
    min_number = min(numbers)
except ValueError:
    min_number = default_value
print(min_number)
# 0

# 示例5:Python 3.8及以后版本使用default参数
numbers = []
min_number = min(numbers, default=0)
print(min_number)
# 0

# 示例5:查找字符串中的最短字符
words = ['apple', 'banana', 'cherry', 'date']
min_shortest_word = min(words, key=len)
print(min_shortest_word)
# date

# 示例6:在多个值中查找最小值
value1 = 10
value2 = 20
value3 = 30
min_value = min(value1, value2, value3)
print("这些值中的最小值是:", min_value)
# 这些值中的最小值是: 10

# 示例7:在嵌套列表中查找最小值
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, [9, 10, 11]]]
min_value = min(min(sublist) for sublist in nested_list)
print(min_value)
# 1

# 应用二:使用自定义函数
# 示例1:找出列表中字典元素中某个键对应的最小值
# 自定义函数,用于从字典中提取指定键的值
def get_score(student):
    return student['score']
# 学生列表,包含字典元素
students = [
    {'name': 'Myelsa', 'score': 98},
    {'name': 'Bruce', 'score': 92},
    {'name': 'Jimmy', 'score': 96},
]
# 使用min函数和自定义的get_score函数找出分数最低的学生
min_score_student = min(students, key=get_score)
print("分数最低的学生是:", min_score_student)
# 分数最低的学生是: {'name': 'Bruce', 'score': 92}

# 示例2:找出字符串列表中长度最短的字符串
# 自定义函数,用于获取字符串的长度
def get_length(s):
    return len(s)
# 字符串列表
words = ['apple', 'banana', 'cherry', 'date']
# 使用min函数和自定义的get_length函数找出最短的字符串
shortest_word = min(words, key=get_length)
print("最短的单词是:", shortest_word)
# 最短的单词是: date

# 示例3:找出列表中自定义对象属性的最小值
# 自定义一个类
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
# 自定义函数,用于从Person对象中提取年龄
def get_age(person):
    return person.age
# Person对象列表
people = [
    Person('Myelsa', 18),
    Person('Bruce', 6),
    Person('Jimmy', 15),
]
# 使用min函数和自定义的get_age函数找出年龄最小的人
youngest_person = min(people, key=get_age)
print("年龄最小的人是:", youngest_person.name)
# 年龄最小的人是: Bruce

# 应用三:与生成器表达式结合使用
# 示例1:找出列表中偶数的最小值
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 使用生成器表达式找出偶数,并用min()找出其中的最小值
min_even_number = min(num for num in numbers if num % 2 == 0)
print("列表中的最小偶数是:", min_even_number)
# 列表中的最小偶数是: 2

# 示例2:找出字典列表中某个键对应的最小值
# 字典列表
students = [
    {'name': 'Myelsa', 'score': 98},
    {'name': 'Bruce', 'score': 92},
    {'name': 'Jimmy', 'score': 96},
]
# 使用生成器表达式和min()找出分数最低的学生
min_score_student = min(
    student for student in students if student['score'] == min(student['score'] for student in students))
print("分数最低的学生是:", min_score_student)
# 分数最低的学生是: {'name': 'Bruce', 'score': 92}

# 示例3:找出字符串中每个单词长度的最小值
sentence = "This is a sample sentence with different length words"
# 使用生成器表达式和min()找出最短单词的长度
min_word_length = min(len(word) for word in sentence.split())
print("最短单词的长度是:", min_word_length)
# 最短单词的长度是: 1

# 示例4:找出嵌套列表中子列表的最小长度
nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9], [10]]
# 使用生成器表达式和min()找出嵌套列表中子列表的最小长度
min_sublist_length = min(len(sublist) for sublist in nested_list)
print("子列表的最小长度是:", min_sublist_length)
# 子列表的最小长度是: 1

# 应用四:数据分析和处理
# 示例1:找出数值数组中的最小值
import numpy as np
# 创建一个NumPy数组
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 24])
# 使用min()函数找出数组中的最小值
min_value = np.min(data)
print("数组中的最小值是:", min_value)
# 数组中的最小值是: 1

# 示例2:找出Pandas DataFrame中的最小值
import pandas as pd
# 创建一个Pandas DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'C': [11, 8, 7, 6, 5]
})
# 找出每列的最小值
min_values = df.min()
print("每列的最小值:")
print(min_values)
# 找出整个DataFrame的最小值(不考虑列)
min_overall = df.values.min()
print("整个DataFrame的最小值:", min_overall)
# 每列的最小值:
# A    1
# B    1
# C    5
# dtype: int64
# 整个DataFrame的最小值: 1

# 示例3:找出字典中值最小的键
# 创建一个字典
data_dict = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
# 使用min()和lambda表达式找出值最小的键
min_key = min(data_dict, key=lambda k: data_dict[k])
print("值最小的键是:", min_key)
# 值最小的键是: a

# 示例4:使用min()结合条件语句筛选数据
# 假设我们有一个包含学生信息的列表,每个元素是一个字典
students = [
    {'name': 'Myelsa', 'score': 98, 'grade': 'A'},
    {'name': 'Bruce', 'score': 88, 'grade': 'B'},
    {'name': 'Jimmy', 'score': 96, 'grade': 'A'},
]
# 找出成绩最低且等级为'B'的学生
min_score_b_grade_student = min(student for student in students if student['grade'] == 'B' and student['score'] == max( s['score'] for s in students if s['grade'] == 'B'))
# 输出该学生的信息
print("成绩最低且等级为'B'的学生是:", min_score_b_grade_student)
# 成绩最低且等级为'B'的学生是: {'name': 'Bruce', 'score': 88, 'grade': 'B'}

# 应用五:算法与编程
# 示例1:使用min()实现二分查找算法
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return -1  # 如果找不到目标值,则返回 -1
# 示例数组,必须是排序好的
sorted_arr = [1, 3, 5, 7, 9]
target_value = 5
# 使用二分查找算法查找目标值
index = binary_search(sorted_arr, target_value)
if index != -1:
    print(f"Found {target_value} at index {index}")
else:
    print(f"{target_value} not found in the array")
# Found 5 at index 2

# 示例2:使用min()找出数组中的最小值和其索引
def find_min_and_index(arr):
    if not arr:
        return None, None
    min_value = min(arr)
    min_index = arr.index(min_value)
    return min_value, min_index
# 示例数组
arr = [4, 2, 9, 7, 5, 1]
# 找出最小值和其索引
min_value, min_index = find_min_and_index(arr)
print(f"The minimum value is {min_value} at index {min_index}")
# The minimum value is 1 at index 5

# 示例3:使用min()实现K-最近邻算法中的距离计算
import math
def euclidean_distance(point1, point2):
    return math.sqrt(sum((a - b) ** 2 for a, b in zip(point1, point2)))
def find_k_nearest_neighbors(dataset, query_point, k):
    distances = [(euclidean_distance(query_point, data_point), index) for index, data_point in enumerate(dataset)]
    distances.sort()  # 按距离排序
    k_nearest = distances[:k]  # 取前k个最近的点
    return k_nearest
# 示例数据集
dataset = [(1, 2), (5, 4), (9, 6), (4, 7), (8, 1), (7, 3)]
query_point = (3, 1)
k = 3
# 找出最近的k个点
k_nearest = find_k_nearest_neighbors(dataset, query_point, k)
print(f"The {k} nearest neighbors are:")
for distance, index in k_nearest:
    print(f"Point at index {index} with distance {distance}")
# The 3 nearest neighbors are:
# Point at index 0 with distance 2.23606797749979
# Point at index 1 with distance 3.605551275463989
# Point at index 5 with distance 4.47213595499958
1-2、VBA:
略,待后补。
2、推荐阅读:

2-1、Python-VBA函数之旅-globals()函数

Python算法之旅:Algorithm

Python函数之旅:Functions

个人主页:神奇夜光杯-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/582351.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue跟jQuery中的事件冒泡、事件捕获、事件委托(事件代理)

1、事件捕获、事件冒泡 在JS中&#xff0c;我们管事件发生的顺序叫“事件流” 标准的事件流&#xff1a;当dom触发了事件后&#xff0c;会先通过事件传播捕获到目标元素&#xff0c;然后目标节点通过事件传播实现事件冒泡 事件传播&#xff1a;无论是捕获还是冒泡&#xff0…

百面算法工程师 | 池化相关总结

目录 14.1 什么是池化 14.2 池化层的作用 14.3 平均池化 14.4 最大池化 14.5 空间金字塔池化 14.6 ROI Pooling 14.7 最大池化与平均池化是如何进行反向传播的 14.8 卷积层与池化层的区别 欢迎大家订阅我的专栏一起学习共同进步 祝大家早日拿到offer&#xff01; lets…

位运算、状态压缩、枚举子集汇总

本文涉及知识点 证明容斥原理和证明集合枚举都用到了&#xff1a;二项式定理 【数学归纳法 组合数学】容斥原理 基础知识 位运算优先级 位运算的结合性都是从左到右。优先级低的先运算。 优先级位运算符说明7<< >>位左移/位右移10&按位与11^按位异或12按位…

织梦云端:网络信号原理的艺术解码

hello &#xff01;大家好呀&#xff01; 欢迎大家来到我的Linux高性能服务器编程系列之《织梦云端&#xff1a;网络信号原理的艺术解码》&#xff0c;在这篇文章中&#xff0c;你将会学习到网络信号原理以及应用&#xff0c;并且我会给出源码进行剖析&#xff0c;以及手绘UML图…

【树莓派】yolov5 Lite,目标检测,行人检测入侵报警,摄像头绑定

延续之前的程序&#xff1a; https://qq742971636.blog.csdn.net/article/details/138172400 文章目录 播放声音pygame不出声音怎么办&#xff08;调节音量&#xff09;树莓派上的音乐播放器&#xff08;可选&#xff09;命令行直接放歌&#xff08;尝试放mp3歌曲&#xff09; …

数据结构-二叉搜索树(BST)

目录 什么是二叉搜索树 二叉搜索树的特性 (1)顺序性 (2)局限性 二叉搜索树的应用 二叉搜索树的操作 (1)查找节点 (2)插入节点 (3)删除节点 (4)中序遍历 什么是二叉搜索树 如图所示&#xff0c;二叉搜索树&#xff08;binary search tree&#xff09;满足以下条件。…

【Vivado那些事儿】使用 Python 提取 ILA 数据

ILA应该是调试AMD-Xilinx FPGA最常用的IP。 在调试中&#xff0c;我们希望 ILA 中的波形可以提供有关设计问题的所有信息&#xff0c;但情况并非如此。对于复杂的调试&#xff0c;我们还需要将 ILA 捕获的真实数据存储到可以进一步处理的文件中。根据放置 ILA 的位置&#xff0…

C语言阶段的题目解析

前言 我们C语言已经学习的差不多了&#xff0c;但是C语言之中存在的一些问题与难点我们还不一定能够又快又好地解决&#xff0c;为了夯实我们的基础&#xff0c;我们来练习几道稍微有点难度的C语言习题吧 例题一 题目 int main(void) {unsigned char i 7;int j 0;for (; i…

【PyTorch 实战3:YOLOv5检测模型】10min揭秘 YOLOv5 检测网络架构、工作原理以及pytorch代码实现(附代码实现!)

YOLOv5简介 YOLOv5&#xff08;You Only Look Once, Version 5&#xff09;是一种先进的目标检测模型&#xff0c;是YOLO系列的最新版本&#xff0c;由Ultralytics公司开发。该模型利用深度学习技术&#xff0c;能够在图像或视频中实时准确地检测出多个对象的位置及其类别&…

千锤百炼之每日算法(三)

题外话 不会再水了,先把算法任务完成! 正题 第一题 简写单词 规定一种对于复合词的简写方式为只保留每个组成单词的首字母,并将首字母大写后再连接在一起 比如“College English Test"可以简写成“CET",“Computer Science 可以简写为"CS"&#xff0c;I a…

【深度学习】【Lora训练1】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

文章目录 一、环境搭建指南二、个性化安装流程三、启动应用四、打开web五、开始训练 19.27服务器 一、环境搭建指南 打造一个高效且友好的开发环境&#xff1a; 项目源码获取&#xff1a; 通过以下命令轻松克隆项目及所有子模块至您的Linux系统&#xff1a; git clone --recu…

《ElementUI 基础知识》el-tabs header 监听鼠标中键滚动时左右滑动(ElementPlus同样适用)

前言 收到需求&#xff0c;可监听 el-tabs 头在鼠标 hover 时。滑动鼠标中键&#xff0c;可左右滑动&#xff01; 效果 鼠标中键上下滑动时&#xff1b;向上滑&#xff0c;向左移动&#xff1b;向下滑&#xff0c;向右移动&#xff1b; 实现 代码56 - 60行&#xff0c;添加…

寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)

贵工程寝室快修目录 目录 基于SprinBootvue的贵工程寝室快修小程序 一、前言 二、系统设计 三、系统功能设计 1学生信息管理 2 在线报修管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&a…

操作系统安全:安全审计,Windows系统日志详解,Windows事件ID汇总

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

C++深度解析教程笔记2

C深度解析教程笔记2 第3课 - 进化后的 const 分析实验-C与C的const区别实验-C与C的const区别&const作用域 第4课 - 布尔类型和引用小结 本文学习自狄泰软件学院 唐佐林老师的 C深度解析教程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 第3课 - 进化后…

Unity 递归实现数字不重复的排列组合

实现 private void Permutation(List<int> num, int leftIndex, List<string> strs) {if (leftIndex < num.Count){for (int rightIndex leftIndex; rightIndex < num.Count; rightIndex){Swap(num, leftIndex, rightIndex);Permutation(num, leftIndex 1…

HarmonyOS 鸿蒙下载三方依赖 ohpm环境搭建

前言 ohpm&#xff08;One Hundred Percent Mermaid &#xff09;是一个集成了Mermaid的命令工具&#xff0c;可以用于生成关系图、序列图、等各种图表。我们可以使用ohpm来生成漂亮且可读性强的图表。 本期教大家如何搭建ophm环境&#xff1a; 一、在DevEco Studio中&#…

前端可以掌握的nginx相关操作

一、前言&#xff1a; 在日常开发中&#xff0c;前端工程师可以把打好的前端包直接放到测试服务器上&#xff0c;自己再验证功能是否改好&#xff0c;这样可以提高开发效率&#xff0c;写篇笔记记录一下我个人用到的命令 二、使用的工具 用MobaXterm完成相关操作&#xff0c…

Vue3 + TS 项目实战 - 后台管理系统 - 按钮权限

前期回顾 网站的打赏 —— 新一代的思路-CSDN博客https://blog.csdn.net/m0_57904695/article/details/136704914?spm1001.2014.3001.5501 目录 &#x1f6a9; XX银行_系统管理_按钮权限控制_前端_提测单 项目信息 提测版本信息 功能列表 测试范围 测试环境 ✅ 步…

[paper note]代码生成评估模型-CodeBLEU原理分析

论文信息 论文标题&#xff1a;CodeBLEU: a Method for Automatic Evaluation of Code Synthesis 发表时间&#xff1a;2020年9月 论文原文&#xff1a;CodeBLEU: a Method for Automatic Evaluation of Code Synthesis 论文内容 摘要 评价指标对一个领域的发展起着至关重…