You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按坐标键对应的位置打印字典的值?

按坐标打印字典中的符号

给定字典 dic2={(0,0):'⬃',(-2,-2):'⇩',(-2,-3):'⇩'},要实现按坐标位置打印符号,可按以下步骤操作:

实现思路

  1. 提取所有坐标的x、y值,计算出坐标范围,确定需要的网格尺寸,同时处理负坐标的偏移(因为列表索引不能为负)。
  2. 创建一个全空格的网格容器,将字典中的符号填充到对应位置。
  3. 按正确的行顺序打印网格(注意打印时从上到下对应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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:42:16