python - 也许在字符串中添加额外的句子/单词

标签 python string

我不得不多次创建与此类似的代码:

if condition():
    word = " not"
else:
    word = ""

print "A five ounce bird could{0} carry a one pound coconut".format(word)

我在这里把问题精简了,在“实践”中,“A”“five”“bird”“a”“one”“coconut” 这样它们都可能发生变化,并且与他们一起,添加了复数 s-es 和诸如此类的东西。

它总是让我觉得有点不尽如人意。 “not” 之前需要的额外空间和 {0} 之前缺少空格都令人讨厌,但是因为如果 word 我不想在那里有两个空格 是空的,我看不到任何其他方法。

创建两个单独的消息中断 DRY由于可能的组合数量太多,有时甚至不可行。

有没有更优雅的方法来做到这一点?

最佳答案

创建一个单词列表,必要时插入,然后 ' '.join(words) 它们。

如果有逗号/句号,构建句子结构:

[['If', 'there', 'are', 'periods'], ', ', ['build', 'a', 'sentence', 'structure'], '.']

在句点中使用相应的空格(逗号后的空格,括号前的空格,...)然后 ' '.join() 组内的单词和 ''.join() 各个组。 (感谢@Alfe 提出以不同方式加入单词和组的建议)。

关于python - 也许在字符串中添加额外的句子/单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10718719/

相关文章:

java - 用字符代码而不是正则表达式替换字符串?

c - 如何为字符串动态分配内存空间并从用户那里获取该字符串?

python - 使用带有附加参数的 map - python

python - Pygame 绘图无法正常工作

python - 如何一起检查一个范围内的两个值?

c - C 是否有任何用于执行字符串添加的工具?

python - 如何提取名字和姓氏的非大写字符串元素?

Python to_datetime(来自 3 列中的 int/float)

python - 修改 matplotlib 中默认 xtick 标签的方向

C - 如何将 ASCII 代码附加到 char 数组