如何用Python合并含共同字符串的两个列表并实现指定排序
解决方案
1. 构建目标列表final
由于两个列表包含完全相同的字符串元素,仅顺序不同,最高效的方式是先将第二个列表echo转换为字典(以字符串为键、对应列表为值),再遍历第一个列表delta拼接元素:
# 将echo转换为字典,实现快速查找 echo_dict = dict(echo) # 构建final列表,顺序与delta一致 final = [(s, num, echo_dict[s]) for s, num in delta]
生成的final列表格式完全符合示例要求。
2. 两种排序方法
按第二个值(整数)排序
使用sorted()函数,指定排序依据为元素的第二个值(索引1),默认升序,添加reverse=True可切换为降序:
# 按第二个值升序排序 sorted_by_num = sorted(final, key=lambda x: x[1]) # 按第二个值降序排序(与示例展示的顺序逻辑一致) sorted_by_num_desc = sorted(final, key=lambda x: x[1], reverse=True)
按第三个值的最大值排序
指定排序依据为第三个元素(列表)的最大值,同样支持升序/降序切换:
# 按第三个列表的最大值升序排序 sorted_by_max_year = sorted(final, key=lambda x: max(x[2])) # 按第三个列表的最大值降序排序 sorted_by_max_year_desc = sorted(final, key=lambda x: max(x[2]), reverse=True)
内容的提问来源于stack exchange,提问作者Joao Henrique da Silva
相关产品推荐
相关产品推荐

