如何在Python中从字典生成的成对矩阵中找出数值更高的键
解决方案
要实现你需要的矩阵效果,只需修改原代码的核心逻辑,从拼接键改为对比对应数值并显示更大值的键,同时保留原有的上三角区域显示规则,具体代码如下:
name = {'a': 10, 'b': 50, 'c': 20, 'd': 30} # 打印表头 print("\t".join([''] + list(name.keys()))) # 遍历每个键作为行标识 for a in name: row = [a] # 遍历每个键作为列标识 for b in name: # 仅处理行键小于列键的上三角区域 if a < b: # 对比两个键对应的数值,取更大值的键 row.append(b if name[b] > name[a] else a) else: # 下三角及对角线位置留空 row.append('') # 输出当前行,用制表符分隔 print("\t".join(row))
逻辑说明
- 表头直接使用字典的键生成,保持和原代码一致的列顺序
- 外层循环遍历每个键作为行标识,内层循环遍历每个键作为列标识
- 仅在行键小于列键的位置(上三角区域)进行数值对比,显示对应数值更大的键;其他位置留空,维持原矩阵的结构
运行代码后,输出结果与你期望的完全一致:
a b c d a b c d b b b c d d
内容的提问来源于stack exchange,提问作者Lateeep
相关产品推荐
相关产品推荐

