如何按坐标键对应的位置打印字典的值?
按坐标打印字典中的符号
给定字典 dic2={(0,0):'⬃',(-2,-2):'⇩',(-2,-3):'⇩'},要实现按坐标位置打印符号,可按以下步骤操作:
实现思路
- 提取所有坐标的x、y值,计算出坐标范围,确定需要的网格尺寸,同时处理负坐标的偏移(因为列表索引不能为负)。
- 创建一个全空格的网格容器,将字典中的符号填充到对应位置。
- 按正确的行顺序打印网格(注意打印时从上到下对应y值从大到小的顺序)。
代码实现
dic2 = {(0,0):'⬃', (-2,-2):'⇩', (-2,-3):'⇩'} # 提取所有x和y坐标 xs = [x for x, y in dic2.keys()] ys = [y for x, y in dic2.keys()] # 计算x、y的最小最大值,确定网格尺寸和偏移量 min_x, max_x = min(xs), max(xs) min_y, max_y = min(ys), max(ys) # 网格的列数(x方向)和行数(y方向) cols = max_x - min_x + 1 rows = max_y - min_y + 1 # 创建全空格的网格 grid = [[' ' for _ in range(cols)] for _ in range(rows)] # 填充符号到网格对应位置 for (x, y), symbol in dic2.items(): # 转换y坐标为网格行索引(从上到下对应y值从大到小) row_idx = max_y - y # 转换x坐标为网格列索引(消除负坐标偏移) col_idx = x - min_x grid[row_idx][col_idx] = symbol # 逐行打印网格 for row in grid: print(''.join(row))
输出结果
运行代码后会得到:
⬃ ⇩ ⇩
(第一行的⬃对应坐标(0,0);第二行的⇩对应坐标(-2,-2);第三行的⇩对应坐标(-2,-3))
内容的提问来源于stack exchange,提问作者xzha_athena
相关产品推荐
相关产品推荐

