假设一个有 3 对数字的列表:
[(100,200), (110, 190), (90, 210)]
我想编写一个脚本来自动(对于这组或任何一组数字)来绘制这样的线;x 指的是每组中数字的相对位置,最大长度为 50(即每行中所有 - 和 x 的总和);关键是要按比例。
-x-----------------x----
-----x-------------x-----
---x-------x---
任何帮助将非常感激!
假设一个有 3 对数字的列表:
[(100,200), (110, 190), (90, 210)]
我想编写一个脚本来自动(对于这组或任何一组数字)来绘制这样的线;x 指的是每组中数字的相对位置,最大长度为 50(即每行中所有 - 和 x 的总和);关键是要按比例。
-x-----------------x----
-----x-------------x-----
---x-------x---
任何帮助将非常感激!
这个非常接近您正在寻找的内容:
number_pairs = [(100,200), (110, 190), (90, 210)]
max_width = 50
min_value = min([i for j in number_pairs for i in j])
max_value = max([i for j in number_pairs for i in j])
step = max_width / float(max_value - min_value)
for num1, num2 in number_pairs:
line = list('-' * max_width)
pos1 = int((num1 - min_value + 1) * step - 1)
pos2 = int((num2 - min_value + 1) * step - 1)
line[pos1] = 'x'
line[pos2] = 'x'
print(''.join(line))