【问题标题】:How to print a list of pairs without commas between pairs in python?如何在python中的对之间打印没有逗号的对列表?
【发布时间】:2020-01-29 15:03:18
【问题描述】:

我有两个相同大小的列表

a = [1, 2, 3, 4, 5]

b = [2, 3, 4, 5, 6]

我想打印压缩列表zip(a, b),但对之间没有逗号,如下所示:

c = [(1, 2) (2, 3) (3, 4) (4, 5) (5, 6)]

当我这样做时

print(str(list(zip(a, b))).replace(',', ''))

我明白了

[(1 2) (2 3) (3 4) (4 5) (5 6)]

删除所有逗号,即使是每对中的逗号,(1 2)

我希望输出是这样的

[(x, y) (z, t) (u, v) ...]

【问题讨论】:

  • 你得到的正是你想要的,还是我搞砸了?
  • 我认为我们错过了最终的预期输出,无法了解您的解决方案在哪里失败。
  • 在一对中,我没有逗号。相反,我想要逗号。我不想只在对之间使用逗号。
  • 试试这个:" ".join(map(str, zip(a, b))) 这也会去掉外面的方括号,但如果需要,您可以轻松地将它们添加回来。
  • 为什么需要那个输出?

标签: python list printing


【解决方案1】:

您可以为replace 使用更具体的参数:

print(str(list(zip(a, b))).replace('), (', ') ('))

【讨论】:

    【解决方案2】:
    print("[" + " ".join(map(str, zip(a, b))) + "]")
    

    print("[", " ".join(map(str, zip(a, b))), "]", sep="")
    

    【讨论】:

      【解决方案3】:

      你可以使用 f-string 和 str join

      f"[{', '.join([str(e).replace(',','') for e in c])}]"
      

      或者你可以使用正则表达式:

      import re 
      
      re.sub('\([^()]*\)', lambda x: x.group().replace(",", ""), str(c))
      

      输出:

      [(1 2), (2 3), (3 4), (4 5), (5 6)]
      

      【讨论】:

        猜你喜欢
        • 2012-07-29
        • 2014-03-06
        • 1970-01-01
        • 2017-11-22
        • 1970-01-01
        • 2018-04-18
        • 1970-01-01
        • 2021-07-20
        相关资源
        最近更新 更多