【问题标题】:Python .join() format errorPython .join() 格式错误
【发布时间】:2018-01-07 12:14:12
【问题描述】:

首先我会说我是 Python 新手。我一直在研究 Discord 机器人,但目前陷入困境。

 list = ['brown', 'polar', 'grizzly', 'sun', 'kodiak']
 print("\nbear ".join(list))

当前打印:

 brown
 bear polar
 bear grizzly
 bear sun
 bear kodiak

我很困惑为什么brown 不包含在加入列表中,所以它应该是bear brown。我假设我将bear 放在错误的位置,我只是不确定在哪里。非常感谢任何帮助,因为我已经坚持了很长一段时间了。再次感谢。

【问题讨论】:

  • 因为您的加入以'\n' 开头。
  • str.join 将分隔符放在 可迭代项中的项目之间,而不是 围绕 项。
  • 尝试将'teddy' 作为第一个元素添加到列表中。观察会发生什么。

标签: python string list join


【解决方案1】:

你不能像这样使用join,因为你想在每一行行的末尾添加bear和换行符。你可以join一个格式正确的空字符串列表:

"".join(map("{} bear\n".format,['brown', 'polar', 'grizzly', 'sun', 'kodiak']))

给予:

'brown bear\npolar bear\ngrizzly bear\nsun bear\nkodiak bear\n'

【讨论】:

    【解决方案2】:

    已经说过,分隔符是插入到每个元素之间,而不是添加到每个元素中。

    但是,您可以使用正确添加的bear 轻松创建一个新列表,例如:

    >>> lst = ['brown', 'polar', 'grizzly', 'sun', 'kodiak']
    >>> newlst = [item + ' bear' for item in lst]
    >>> print('\n'.join(newlst))
    brown bear
    polar bear
    grizzly bear
    sun bear
    kodiak bear
    

    这会将bear 添加到每个 列表项,然后在 项之间插入换行符。

    您也可以将它添加到每个列表项:

    >>> newlst = ['bear ' + item for item in lst]
    >>> print('\n'.join(newlst))
    bear brown
    bear polar
    bear grizzly
    bear sun
    bear kodiak
    

    【讨论】:

      【解决方案3】:

      就像评论中提到的@jonrsharpe 一样,.join() 将分隔符放在项目之间。要实现您的目标,您可以改用以下内容:

      for item in list:
          print("bear", item)
      

      顺便说一句,我建议不要使用 list 作为变量名,因为这是您将某些内容转换为列表的关键字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-12
        • 2013-02-10
        • 1970-01-01
        相关资源
        最近更新 更多