打印字符串的每个字母的次数与字母的数量相同

时间:2019-03-18 00:47:14

标签: python

我正在尝试使此函数起作用,以便它打印字符串的每个字母,其次数与字符串中字母的数量相同。因此,例如,如果字符串为'hi',则函数的输出为:

hh

ii

(每个字母都在上面类似的单独行中) 但是对于上面的示例,我的代码仅显示ii,而我也不知道为什么。

def vertical_strings(string):
    """takes a string and prints each letter on new line repeating each letter for length of word"""

    num = len(string)
    for char in string:
        new = char * num
    return new
print(vertical_strings('hi'))

3 个答案:

答案 0 :(得分:0)

您只返回最后一个字母的结果,请尝试使用所有重复字母的列表,然后使用换行符(\n)将列表的元素连接起来:

def vertical_strings(string):
    num = len(string)
    new = []
    for char in string:
        new.append(char * num)
    return '\n'.join(new)

print(vertical_strings('hi'))

输出:

hh
ii

答案 1 :(得分:0)

def vertical_strings(string):
    """takes a string and prints each letter on new line repeating each letter for length of word"""

    num = len(string)
    for char in string:
        new = char * num
        print new
vertical_strings('hi')

您只需要在代码中进行一些细微调整

  • 由于需要打印,因此请在每次代码迭代时进行打印

答案 2 :(得分:0)

我认为也应该有一项规定,仅从给定的字符串中捕获唯一的字母。在这里,我的解决方案以回文mom来强调,存在两个唯一字符,并且输出应该仅两行。请检查一下并提供您的反馈。

def vertical_strings(string):

    return [x*len(string) for x in list(set(string))]

[print(x) for x in vertical_strings('mom')]

输出:

mmm
ooo