【问题标题】:Printing a string with consecutive numbers of letters打印具有连续字母数的字符串
【发布时间】:2016-03-17 16:13:27
【问题描述】:

我正在尝试打印一个字符串,该字符串具有每个字母的连续数量,因此该字符串应打印“aaabaaccc”。谁能告诉我哪里出错了,因为我只是python的初学者

h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]

g = ''

for f in h:

    g = g + f

【问题讨论】:

    标签: python string list tuples


    【解决方案1】:

    您可以使用 Python 列表推导来避免字符串连接。

    print ''.join(letter * count for letter, count in [("a", 3), ("b", 1), ("a", 2), ("c", 3)])
    

    这将打印:

    aaabaaccc
    

    【讨论】:

      【解决方案2】:
      h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
      g = ''
      for char, count in h:
          #g = g + f  #cant convert tuple to string implicitly
          g=g+char*count
      print(g)
      

      String*n 重复字符串 n 次。

      【讨论】:

        【解决方案3】:
        h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
        
        g = ''
        
        for i, j in h:     # For taking the tuples into consideration
        
        
            g += i * j
        
        print(g)  # printing outside for loop so you get the final answer (aaabccc)
        

        【讨论】:

          【解决方案4】:

          您正在尝试将您的元组(两个项目)解包为一个,这是您无法做到的。

          试试这个:

          for letter, multiplier in h:
              g += letter * multiplier
          

          【讨论】:

            【解决方案5】:

            如果 "h" 总是这样格式化,那么一个单行是:

            g = "".join([i[0]*i[1] for i in h])
            

            【讨论】:

              【解决方案6】:

              Python 让你用数字“乘”字符串:

              >>> 'a' * 5
              'aaaaa'
              
              >>> 'ab' * 3
              'ababab'
              

              因此,您可以遍历列表,将字符串“乘以”数字,然后以这种方式构建字符串。

              >>> h = [("a", 3), ("b", 1), ("a", 2), ("c", 3)]
              >>> g = ''
              >>> for letter, number in h:
              ...     g += letter * number
              ... 
              >>> print(g)
              aaabaaccc
              

              【讨论】:

                猜你喜欢
                • 2021-06-08
                • 1970-01-01
                • 2017-08-30
                • 1970-01-01
                • 2019-07-16
                • 2016-11-20
                • 1970-01-01
                • 1970-01-01
                • 2021-12-31
                相关资源
                最近更新 更多