Python中如何使用.join方法为词组中的每个单词添加前缀
问题原因
你的代码存在逻辑错误:传给join方法的生成器表达式,每次遍历都直接返回列表的第一个元素(即固定前缀),最终只会输出和列表长度相同数量的重复前缀,完全没有对后续单词做前缀拼接处理。
解决方案
按照需求,我们需要构造的待拼接序列规则如下:
- 第一个元素直接保留前缀本身
- 从列表第二个元素开始,每个元素都拼接前缀后再加入序列
- 最后用
::将整个序列拼接为字符串
正确代码实现
def make_word_groups(vocab_words): prefix = vocab_words[0] # 构造拼接序列:第一个元素是前缀,后续是前缀加每个单词 word_sequence = [prefix] + [prefix + word for word in vocab_words[1:]] return ' :: '.join(word_sequence)
效果验证
举个测试用例:
输入vocab_words = ['un', 'happy', 'do', 'fair']
输出结果为:un :: unhappy :: undo :: unfair,完全符合需求。
内容的提问来源于stack exchange,提问作者Ari San
相关产品推荐
相关产品推荐

