【问题标题】:Add prefixes to word groups in Python在 Python 中为词组添加前缀
【发布时间】:2021-11-03 02:22:18
【问题描述】:

如何使用 .join 函数为给定单词组中的每个单词添加前缀?

:param vocab_words: 带前缀的词汇列表。
:return: str of prefix 后跟带有
的词汇 应用前缀,用'::'分隔。

This function takes a `vocab_words` list and returns a string
with the prefix  and the words with prefix applied, separated
 by ' :: '. "

我知道字符串中的前缀始终是 vocab_words[0]。

我试过了

 def make_word_groups(vocab_words):
    return ' :: ' .join(vocab_words[0] for i in vocab_words[0:])

它不起作用。我收到 AssertionError。结果 - 有很多前缀,然后是一些带前缀的单词。

【问题讨论】:

  • 您愿意提供一些示例输入和输出吗?
  • input_data = ['auto', 'didactic', 'graph', 'mate', 'chrome', 'centric', 'complete', 'echolalia', 'encoder', 'biography' ] input_data = ['en','circle', 'fold', 'close','joy', 'lighten', 'tangle', 'able', 'code', 'culture'] input_data = ['pre' , '服务', '处置', '位置', '必要', 'digest', 'natal', 'addressed', 'adolescent', 'assumption', 'mature', 'compute'] 我有四组不同前缀的单词
  • 和 result_data = ('auto :: autodidactic :: autograph :: 自动化 :: autochrome :: ' 'autocentric :: autocomplete :: autoecholalia :: autoencoder :: ' '自传')
  • 您的结果似乎不一致。请检查
  • 如果我猜对了,那么你的输出应该是auto :: autodidactic :: autograph :: automate :: autochrome :: autocentric :: autocomplete :: autoecholalia :: autoencoder :: autobiography,对吗?

标签: python string join prefix


【解决方案1】:

试试这个:

def make_word_groups(vocab_words):
   separator = ' :: '

   prefix = vocab_words[0]
   words = vocab_words[1:]

   prefixed_words = [prefix + word for word in words]
   result = prefix + separator + separator.join(prefixed_words)

   return result

【讨论】:

  • 我已经尝试并得到了这个 AssertionError: 'autodidactic :: autograph :: automatic :: auto[82 chars]aphy' != 'auto :: autodidactic :: autograph :: automatic[90 chars] aphy' - 自学 :: 亲笔签名 :: 自动 :: 自动染色 :: 自动中心 :: 自动完成 :: autoecholalia :: 自动编码器 :: 自传 + 自动 :: 自动教学 :: 亲笔签名 :: 自动 :: 自动染色 :: 自动中心 :: 自动完成 :: autoecholalia :: 自动编码器 :: 自传 ? ++++++++
  • 分享完整代码sn-p以便更好地理解
  • 好的,看看你的执行结果让我改变我的答案
  • 请再检查一次
【解决方案2】:

你可以试试这个:

def make_word_groups(vocab_words):
    result_data = f'{vocab_words[0]} :: '
    result_data += ' :: '.join([vocab_words[0] + word for word in vocab_words[1:]])
    return result_data

input_data = ['auto', 'didactic', 'graph', 'mate', 'chrome', 'centric', 'complete', 'echolalia', 'encoder', 'biography']
print(make_word_groups(input_data))
input_data = ['en' ,'circle', 'fold', 'close','joy', 'lighten', 'tangle', 'able', 'code', 'culture']
print(make_word_groups(input_data))
input_data = ['pre', 'serve', 'dispose', 'position', 'requisite', 'digest', 'natal', 'addressed', 'adolescent', 'assumption', 'mature', 'compute']
print(make_word_groups(input_data))

输出:

auto :: autodidactic :: autograph :: automate :: autochrome :: autocentric :: autocomplete :: autoecholalia :: autoencoder :: autobiography
en :: encircle :: enfold :: enclose :: enjoy :: enlighten :: entangle :: enable :: encode :: enculture
pre :: preserve :: predispose :: preposition :: prerequisite :: predigest :: prenatal :: preaddressed :: preadolescent :: preassumption :: premature :: precompute

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2021-04-26
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
相关资源
最近更新 更多