-1

我有一门人工智能课程,我有一个练习来编写一个生成尽可能短的句子的代码(就字符数而言)我有一个 list2D 离开这只是单词列表,没有真正的英文句子。我不需要正确的英文句子

data=[["One","Two","He","You","a"],["have","had","make","do"],["red","blue"]]

我必须使 3 个单词的句子尽可能小(以字符数计),我之前提出的示例的解决方案是“a do red”

这是我在遗传算法中所做的,我通过修改每个 gen 0.05% 的 pop 来寻找最有价值的 patite。

一个个体是一个句子,一个群体是一个短语集,我尝试生成尽可能小的句子。

问题是价值没有改变。在此先感谢您的帮助。

4

1 回答 1

2

如果您必须从每个列表中选择一个单词,您可以这样做:

for sublist in data:
    print(min(sublist, key=len))

Out [4]:
a
do
red

或者,如果您想要一个字符串作为结果:

" ".join([min(sublist, key=len) for sublist in data])

Out [2]:
'a do red'

请注意,这会从每个列表中选择第一个最短的单词,因此如果有多个长度最短的单词,您将获得列表中的第一个单词。您可能希望将它们附加到新列表中,或者根据您的用例执行其他操作,而不是将它们打印出来。

于 2017-12-06T08:54:58.700 回答