0

假设一个有 3 对数字的列表:

[(100,200), (110, 190), (90, 210)]

我想编写一个脚本来自动(对于这组或任何一组数字)来绘制这样的线;x 指的是每组中数字的相对位置,最大长度为 50(即每行中所有 - 和 x 的总和);关键是要按比例。

-x-----------------x----

-----x-------------x-----

---x-------x---

任何帮助将非常感激!

4

1 回答 1

1

这个非常接近您正在寻找的内容:

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))
于 2013-07-08T20:31:14.503 回答