我正在编写一个函数,它接受一个list变量,并返回与列表中每个数字对应的竖线。我只是有个简单的问题,真的。也许,我错过了一些东西。在
def vBarMaker(nums): # Helper Function
output = ""
while nums != 0:
nums -= 1
output += "*"
if nums == 0:
return output
def vBarGraphify(nums):
for num in nums:
print vBarMaker(num)
print vBarGraphify( [0,1,3,2] )
# ^ This returns
#
# *
# ***
# **
# But I want it to return:
# *
# * *
# * * *
有人能帮我编辑这个函数,让它返回^。提前谢谢。在
如果要使条形图垂直,则每行打印都需要考虑所有值,并且需要与最大值相同的行数:
输出:
^{pr2}$我添加了一个
10
来证明这些条实际上是垂直的,与其他所有答案不同。。。在编辑:
^{pr2}$更像Python:
From Here!
目前你有一个循环输出相应的星号,直到数字达到。您还需要考虑空白。我要做的是输出一个空格,该空格对应于正在打印的星号的当前索引号。在
这就是说,如果传递给函数的列表是
[1,2,3]
,那么在第一次迭代中,应该打印两个空格和一个*号:' *'
在下一次迭代中,应该打印一个空格和两个*:' **'
在第三次迭代中,应该打印三个*:'***'
编辑:
尽管corn3lius的回答已经非常棒了,我还是继续编写我的实现代码。我在这里包括了他和医生的测试,所以你可以看到它是如何工作的。在
我的答案和corn3lius的答案的主要区别在于,左边的空白是硬编码在corn3lius的答案中的,而我的答案是根据给定列表中的最大数量生成的。在
编辑2:
现在我看到OP需要编辑中显示的列,我重新编写了我的解决方案以使用numpy.transpose函数。大部分内容保持不变,但现在我将整个过程视为行和列,然后转置二维数组以获得所需的列。在
^{pr2}$相关问题 更多 >
编程相关推荐