如何根据3D列表中最大值的位置匹配对应维度另一列表的名称?
3D列表最大值对应名称的匹配方案
你的原始数据结构是嵌套列表:外层列表包含多组数据,每组由「名称子列表」和「数值子列表」组成。针对第一组数据中最大值匹配对应名称的需求,直接用以下代码即可实现:
# 定义原始数据 data = [[['ellen', 'barnacles', 'vee', 'charlie'], [5, 7, 4, 8]], [['danny', 'craig', 'dave', 'isaac'], [2, 1, 0, 3]]] # 定位第一组的数值列表,找到最大值的索引 first_group_values = data[0][1] max_value_index = first_group_values.index(max(first_group_values)) # 通过索引匹配对应名称 target_name = data[0][0][max_value_index] print(target_name) # 输出结果:charlie
关键步骤说明
data[0]:定位到第一组数据(包含名称和数值两个子列表)data[0][1]:提取第一组的数值列表[5, 7, 4, 8]max(first_group_values):获取数值列表中的最大值8,再通过index()方法得到其索引位置3data[0][0][max_value_index]:用索引从第一组的名称列表中取出对应元素,即charlie
如果需要批量处理所有组的最大值对应名称,可使用循环遍历:
for group in data: names = group[0] values = group[1] max_idx = values.index(max(values)) print(f"当前组最大值对应名称: {names[max_idx]}")
执行后输出:
当前组最大值对应名称: charlie 当前组最大值对应名称: isaac
内容的提问来源于stack exchange,提问作者English_Garfield
相关产品推荐
相关产品推荐

