我有以下形式的数据。
Species1 277:A 352:B 423:C 566:D........10000:G
Species2 247:A 352:B 423:C 566:D........9500:G
Species3 271:A 349:B 566:C....7500:G
在每种情况下,冒号“:”之前的值都是位置。范围从 0 到 10,000。列后面的值是我感兴趣的一些数据。我已经知道没有值超过 10,000。这意味着可以根据其位置在屏幕上绘制值。换句话说,我们以 0-10,000 的固定范围在屏幕上打印每个物种的值。不打印缺少的值。是否有可能在屏幕上打印出这种输出? 输出:
Species1 A B C D G
Species2 A B C D G
Species3 A B C G
因此字符是根据其位置打印的。例如,物种 1 中的 G 为 10,000。所以它被打印在最后。物种 B 中的 G 位于 9500,因此它位于物种 1 中 G 的左侧。所以基本上,我希望根据其位置信息打印值。
最佳答案
嗯:使用元组列表的非常粗略的解决方案
sp1=[(277, "A"), (352, "B"), (423, "C"), (566, "D")]
sp1.sort()
fact = 80/sp1[-1][0]
pos = 0
for elem in sp1:
ch = " "*int(elem[0]*fact - pos) + elem[1]
pos += len(ch)
print(ch, sep="", end = "")
没有?
关于python - 打印与固定比例相关的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31627137/