Python 使用节点ADT定义函数

Python 使用节点ADT定义函数,python,Python,我正试图写这段代码,但我不能得到最后一部分的权利。问题是定义一个函数,该函数将节点对象作为参数,并返回此链接链中的累积单词列表。节点ADT已经内置到程序中,因此我无法修改它。 我的代码: 我得到的结果是: hello to programming ['hello', 'to', 'programming'] 我想得到的是: hello to programming ['hellotoprogramming', 'toprogramming', 'programming'] 为了得

我正试图写这段代码,但我不能得到最后一部分的权利。问题是定义一个函数,该函数将节点对象作为参数,并返回此链接链中的累积单词列表。节点ADT已经内置到程序中,因此我无法修改它。 我的代码:

我得到的结果是:

hello

to

programming

['hello', 'to', 'programming']
我想得到的是:

hello

to

programming

['hellotoprogramming', 'toprogramming', 'programming']
为了得到预期的结果,我必须在代码中修改什么?
谢谢

您的
新列表
包含ADT的所有元素。由此,您可以使用列表理解和
join()
生成所需的结果,如下所示-

def get_cumulative_words_list(first_node):
    new_list=[]
    new_list.append(first_node.get_data())
    current=first_node.get_next()
    while current !=None:
        new_list.append(current.get_data())
        current=current.get_next()
    return ["".join(new_list[i:]) for i in range(len(new_list))]
在最后一行中,将从
new\u list
创建一个新列表。
“”.join(new_list[i:])
通过添加该片段的所有字符串返回一个字符串

因此,当
i
为0并且说
new\u list
的长度为3时,
“”。join(…
将添加
new\u list[0]
new\u list[1]
new\u list[2]
,此字符串将是新创建的列表的第一个条目。同样,当
i
为1时,它将只添加
new\u list[1]
新列表[2]

这样,输出将是-
['hellotoprogramming','toprogramming','programming']

def get_cumulative_words_list(first_node):
    new_list=[]
    new_list.append(first_node.get_data())
    current=first_node.get_next()
    while current !=None:
        new_list.append(current.get_data())
        current=current.get_next()
    return ["".join(new_list[i:]) for i in range(len(new_list))]