【发布时间】:2019-11-10 18:07:26
【问题描述】:
我正在用 python 制作一个诗歌生成器,我目前正在研究如何将诗歌输出给用户。我想这样做,所以输出的每一行后面都会有一个逗号。我认为我可以通过使用 .join 函数轻松实现这一点,但它似乎附加到字母而不是存储在列表中的字符串的末尾。
line1[-1]=', '.join(line1[-1])
print(*line1)
print(*line2)
会输出如下内容:
Moonlight is w, i, n, t, e, r
The waters scent fallen snow
事后看来,我应该知道 join 是错误的函数,但我仍然迷失了方向。我尝试了 .append,但由于列表中的项目是字符串,我收到错误消息“'str' object has no attribute 'append'。”
我意识到对这一切的另一个修复可能是这样的:
print(*line1, ",")
但我正在开发一个函数,该函数将决定正确的标点符号是否需要是“!”、“、”、“?”或“--”,所以我真的希望找到一些可以附加到列表本身的字符串,而不是在输出打印过程中附加。
【问题讨论】:
-
你能添加你的代码吗?
-
像
line = '{},'.format(line)这样的东西应该可以工作——甚至line = line + "," -
运行这个:
print(‘hi’ + ‘!’) -
从docs 开始,join 将连接给定的可迭代对象,并在其间插入调用它的字符串。因此,在您的示例中,我猜您的
line1是一个单词列表,并且您正在使用逗号连接最后一个单词 (line1[-1]) 的字符。如果您使用的是单词列表(在打印时与*的用法相匹配),只需将逗号附加到该单词列表即可。
标签: python string list join append