Python实现两列表对齐展示并合并相同值对应的另一列表元素
实现代码
常规实现(Python3.7及以上版本可用,默认字典保序)
list1 = [1, 2, 2, 12, 23] list2 = [2, 3, 5, 3, 4] # 构建合并映射关系 merge_dict = {} for key, val in zip(list1, list2): merge_dict.setdefault(key, []).append(str(val)) # 输出指定格式的Markdown表格 print("| list1 | list2 |") print("|---|---|") for k, vals in merge_dict.items(): print(f"| {k} | {','.join(vals)} |")
低版本Python兼容实现(支持Python3.7以下版本)
如果使用的Python版本不支持字典默认保序,可以用OrderedDict保证顺序和list1元素首次出现的顺序一致:
from collections import OrderedDict list1 = [1, 2, 2, 12, 23] list2 = [2, 3, 5, 3, 4] merge_dict = OrderedDict() for key, val in zip(list1, list2): merge_dict.setdefault(key, []).append(str(val)) print("| list1 | list2 |") print("|---|---|") for k, vals in merge_dict.items(): print(f"| {k} | {','.join(vals)} |")
实现逻辑说明
- 遍历两个列表的同位元素,以list1的取值为键,收集对应位置的list2元素
- 输出表格时,将同一个键对应的多个list2元素用英文逗号拼接,按格式输出即可
运行上述代码后输出的内容就是你需要的最终表格效果。
内容的提问来源于stack exchange,提问作者Ayesha
相关产品推荐
相关产品推荐

