【问题标题】:Histogram for list of elements python元素列表的直方图 python
【发布时间】:2023-01-29 23:38:41
【问题描述】:

有谁知道我该怎么做

输入

解释:<2> 是第一个输入并显示下一个输入行的数量 -> 如果第一个输入是 n,则所有输入行都是 n+1

2 
purple 11,yellow 3,pink 1 
gray 8,blue 10,pink 12

最后两行是我的下一个输入(用户想要收集并保存他们销售蜡笔的 n 天,并获得他们销售的直方图

进入这个

输出

我想逐行打印行号及其单词列表及其数字的直方图(实际上是“*”)

1
purple ***********
yellow ***
pink *
2
gray ********
blue **********
pink ************

我在获取输入方面没有问题我只是不知道我应该写什么代码来打印这个输出。

PS:我将销售额存储在列表中

【问题讨论】:

  • 您的输入行是如何存储的?在列表中?格式是什么?
  • @Corralien 是的,我将它们存储在列表中
  • 以下是一些您可能会觉得有用的东西:int("11") == 11。另外,11 * "*" == "***********"
  • 如果以下任一答案解决了您的问题,那么您应该将最能帮助您的答案标记为正确。这将有助于指导其他人将来遇到同样的问题。见What should I do when someone answers my question?
  • @MichaelM。啊啊好吧! ^-^ 其中两个完全帮助解决了我的问题

标签: python dictionary for-loop histogram


【解决方案1】:

您应该多次使用.split() method 将行拆分为,,然后将每个元素拆分为" "。然后你应该用 * * 元素的第二部分打印颜色(元素的第一部分)。我使用了f strings,但你可以在print()中使用+。这是代码:

lines = []
for i in range(int(input())):
    lines.append(input())
# making a list "lines" with all lines

for j in range(len(lines)):
    print(j + 1)  # line number
    for element in lines[j].split(","):
        print(f'{element.split(" ")[0]} {"*" * int(element.split(" ")[1])}')  # color and stars

希望有所帮助! :)

【讨论】:

    【解决方案2】:

    假设输入严格采用这种格式,您可以只使用 list comprehension 来存储所有输入行,然后在这些输入行上使用 enumerate()。对于每个输入行,用, 分割得到每个项目,然后用空格分割每个元素得到名称和数量。获得名称和金额后,您只需使用 print() 语句并使用字符串乘法重复 *(星号)字符 amt 次。像这样:

    times = int(input())
    lines = [input() for _ in range(times)]
    for i, line in enumerate(lines):
        print(i+1)
        for item in line.split(','):
            name, amt = item.split(' ')
            print(name, '*' * int(amt))
    

    正如 Corralien 在评论中提到的,如果您愿意,您可以将最后一行替换为使用 f 字符串,但是,它不会改变功能:

    print(f"{name:8} {'*' * int(amt)}")
    

    【讨论】:

    • 恕我直言,那些问什么显然是编程 101 家庭作业问题的人从提示和技巧中获益更多,而不是从完整的答案中获益。特别是考虑到诸如“列表理解”之类的科目可能超出了……这是什么,春季学期的第 3 周左右?
    • 您可以使用 f-strings 增强您的答案:print(f"{name:8} {'*' * int(amt)}")
    • @Him 我同意,但我也相信,如果没有完整的示例或接触代码,可能很难将这些提示和技巧应用到实际情况中(根据我自己的经验,您的经验可能会有所不同)。我已经编辑了我的问题以包含一些指向 Python 文档的链接,这些链接对于初学者来说都是相当容易理解的,并提供了额外的示例。
    • @Michael M 谢谢你帮助我 ^^
    • @melody 总是乐于助人!如果我的回答对你帮助最大,那你可以采纳(见:【有人回答我的问题我该怎么办?】(stackoverflow.com/help/someone-answers))。这将有助于指导其他人将来遇到同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 2020-08-11
    相关资源
    最近更新 更多