【问题标题】:Printing lists in python without spaces在没有空格的python中打印列表
【发布时间】:2014-11-27 15:33:36
【问题描述】:

我正在做一个程序,将一个以 10 为底的数字更改为以 7 为底的数字,所以我这样做了:

num = int(raw_input(""))
mod = int(0)
list = []
while num> 0:
    mod = num%7
    num = num/7
    list.append(mod)
list.reverse()
for i in range (0,len(list)):
    print list[i],

但如果数字是 210,它会打印 4 2 0 我如何去掉空格

【问题讨论】:

标签: python printing


【解决方案1】:

您可以将 join 与列表理解一起使用:

>>> l=range(5)
>>> print l
[0, 1, 2, 3, 4]
>>> ''.join(str(i) for i in l)
'01234'

另外,不要使用list 作为变量名,因为它是一个内置函数。

【讨论】:

  • 嗨,谢谢,它工作得很好,但我是新手,我不明白 .join 是如何工作的,你能给我一个简单的解释
  • @mariaalejandraescalante ,它将字符串作为分隔符,并将列表中的元素相互连接,并在它们之间使用分隔符。所以这个','.join(['a', 'b', 'c']) 会给'a,b,c'
【解决方案2】:

在 python 3 中你可以这样做:

print(*range(1,int(input())+1), sep='')

如果 input = 4,您的输出将是这样的:

1234

【讨论】:

    【解决方案3】:

    看看sys.stdout。它是一个文件对象,包装标准输出。作为每个文件,它都有write 方法,该方法接受字符串,并将其直接放入STDOUT。它也不会自行更改或添加任何字符,因此在您需要完全控制输出时非常方便。

    >>> import sys
    >>> for n in range(8):
    ...     sys.stdout.write(str(n))
    01234567>>> 
    

    注意两点

    • 您必须将字符串传递给函数。
    • 打印后没有换行符。

    此外,知道您使用的构造很方便:

    for i in range (0,len(list)):
       print list[i],
    

    相当于(坦率地说效率更高):

    for i in list:
        print i,
    

    【讨论】:

      【解决方案4】:

      将列表转换为字符串,并替换空格。

      strings = ['hello', 'world']
      
      print strings
      
      >>>['hello', 'world']
      
      print str(strings).replace(" ", "")
      
      >>>['hello','world']
      

      【讨论】:

        【解决方案5】:

        python3 可以使用下面的代码 sn-p

        print(*list(range(1, n + 1)), sep='')
        
        • * 将删除像 [{}] 这样的初始和结束字符
        • sep = '' 将删除项目之间的空格。

        【讨论】:

          【解决方案6】:

          使用 list_comprehension。

          num= int(raw_input(""))
          mod=int(0)
          list =[]
          while num> 0:
              mod=num%7
              num=num/7
              list.append(mod)
          list.reverse()
          print ''.join([str(list[i]) for i in range (0,len(list))])
          

          【讨论】:

          • 嗨,谢谢,它工作得很好,但我是新手,我不明白 .join 是如何工作的,你能给我一个简单的解释
          【解决方案7】:

          在 Python3 中执行以下操作对我有用

          print(*list,sep='')
          

          【讨论】:

            【解决方案8】:

            print() 函数有一个参数来指定结束字符,默认情况下是'\n'。将结束字符指定为 '' 并使用循环打印将满足您的要求:

            n_list = [1,2,3,4,5]
            for i in n_list:
                print(i, end='')
            

            【讨论】:

              【解决方案9】:
              s = "jay"
              list = [ i for i in s ]
              

              如果您打印list,您将获得:

              ['j','a','y']

              new_s = "".join(list)
              

              如果你打印new_s:

              “杰”

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-11-06
                • 2014-03-06
                • 2012-09-23
                • 2021-07-16
                • 1970-01-01
                • 2017-11-22
                • 1970-01-01
                • 2013-03-05
                相关资源
                最近更新 更多