【问题标题】:Spacing when printing values in a python dictionary [duplicate]在python字典中打印值时的间距[重复]
【发布时间】:2016-05-10 22:51:22
【问题描述】:

我想打印字典中的值,不带任何间距。

这是对我的代码的测试:

d = {}
d["char12"] = "test"
d["char22"] = "test"
print d["char12"],
print d["char22"]

输出是

test test

但我需要它:

testtest

有没有办法消除自动间距?

谢谢!

【问题讨论】:

    标签: python string dictionary spacing


    【解决方案1】:

    选项 1:合并打印语句

    print d["char12"]+d["char22"]
    

    选项 2:使用 stdout.write

    import sys
    ...
    sys.stdout.write(d["char12"]) # write without a separator
    print d["char22"]
    

    【讨论】:

    • 第一个违反了 IMO 的规定。第二个需要导入和多次写入。
    • 使用 sys.stdout.write 效果很好,谢谢!!
    【解决方案2】:

    你可以使用join()

    d = {}
    d["char12"] = "test"
    d["char22"] = "test"
    
    print ''.join((d["char12"], d["char22"]))
    

    输出:testtest

    【讨论】:

      【解决方案3】:

      str.format() 是众多选项之一。

      来自documentation

      这种字符串格式化方法是 Python 3 中的新标准,并且 应该优先于字符串格式中描述的 % 格式 新代码中的操作。

      你可以这样使用它:

      print '{}{}'.format(d["char12"], d["char22"])
      

      这也可以:

      print('{char12}{char22}'.format(**d))
      

      允许您在格式字符串中使用字典键。

      【讨论】:

        【解决方案4】:

        一种方式:

        import sys
        d = {}
        d["char12"] = "test"
        d["char22"] = "test"
        sys.stdout.write(d["char12"])
        sys.stdout.write(d["char22"])
        

        你可以用这个!

        或者您可以使用其他方式:

        from __future__ import print_function
        d = {}
        d["char12"] = "test"
        d["char22"] = "test"
        print(d["char12"], end="")
        print(d["char22"], end="")
        

        【讨论】:

          【解决方案5】:

          要打印不带空格的字典值:

          print(''.join(d.values())
          

          字典没有顺序,所以如果顺序很重要,你应该使用 OrderedDict。

          from collections import OrderedDict
          
          d = OrderedDict()
          d["char12"] = "test"
          d["char22"] = "test"
          
          print(''.join(d.values())
          

          【讨论】:

          • 使用join()没有什么问题,但是在能够打印出没有空格的值的基础上选择你的数据结构可能不是一个好主意。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-20
          • 1970-01-01
          • 2018-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多