如何匹配姓名列表与数字列表,找到对应最大数值的姓名?
找到最大数值对应的姓名
针对你的需求,这里有两种简单的实现方法,同时要注意数字列表是字符串类型,必须先转为整数再比较(否则字符串排序会出错,比如'9'会被认为比'10'大):
方法一:直接配对后找最大值
用zip()把姓名和数字一一关联,配合max()的key参数指定按数字大小比较:
name = ['John', 'Joe','Jae'] number = ['10','20','30'] # 将数字字符串转为整数,同时与姓名配对 pairs = zip(name, map(int, number)) # 按数字大小筛选出最大的配对项 max_name, max_num = max(pairs, key=lambda item: item[1]) print(max_name) # 输出:Jae
方法二:通过索引匹配
先找到最大数字的位置,再用索引取出对应姓名:
name = ['John', 'Joe','Jae'] number = ['10','20','30'] # 把字符串数字转为整数列表 num_list = list(map(int, number)) # 找到最大数值 biggest_num = max(num_list) # 获取最大数值的索引 target_index = num_list.index(biggest_num) # 取出对应姓名 max_name = name[target_index] print(max_name) # 输出:Jae
注意:如果数字列表中有多个相同的最大值,index()只会返回第一个出现的索引,对应第一个匹配的姓名。
内容的提问来源于stack exchange,提问作者smol bean
相关产品推荐
相关产品推荐

