在Python语音识别中,如何将变化的列表数合并为一个?

在Python语音识别中,如何将变化的列表数合并为一个?,python,list,speech-recognition,mutable,Python,List,Speech Recognition,Mutable,我想把可变列表合并成一个列表。我正在使用语音识别,所以我得到的单词列表一直在变化。有些人说使用+运算符添加列表,但每次演讲者讲话时,都会生成不同数量的列表。想象一下,好像程序还不知道每次会有多少个列表。我有像['hi']和['hello']这样的列表,下次我有像['one']、['two']和['three']这样的列表。我想写一个代码或函数,允许将所有数量的列表添加到一个列表中。因此,我想对所有数量的列表实现相同的代码。最后我想要的是['hi','hello']或['one','two','t

我想把可变列表合并成一个列表。我正在使用语音识别,所以我得到的单词列表一直在变化。有些人说使用+运算符添加列表,但每次演讲者讲话时,都会生成不同数量的列表。想象一下,好像程序还不知道每次会有多少个列表。我有像['hi']和['hello']这样的列表,下次我有像['one']、['two']和['three']这样的列表。我想写一个代码或函数,允许将所有数量的列表添加到一个列表中。因此,我想对所有数量的列表实现相同的代码。最后我想要的是['hi','hello']或['one','two','three']。我对Python非常陌生。提前谢谢你

有三种合并列表的方法:

# using +
a = ['A']
b = [1, 2]  

a + b # ['A', 1, 2]

# using append
a.append(b) # ['A', [1, 2]]

# using extend
a.extend(b) # ['A', 1, 2]
他们之间有什么区别?
+
操作符创建新的列表,而方法会改变调用它们的列表。

我相信
+
操作符正是您想要的。例如:

a = ["foo", "bar"] 
b = ["bar", "got"]
c = a + b
打印
['foo','bar','bar','got']


如果要将
b
添加到
a
中,请使用
.extend()
。您也可以使用
+=
,但可以说它不太像python

a = ["foo", "bar"]
b = ["bar", "got"]
a.extend(b)  # (or a += b)
print(a)
打印
[“foo”、“bar”、“bar”、“got”]

更新:根据作者提供的新信息,以下是我的四行解决方案:

def merge(lists):
    result = []
    for list in lists:
        result.extend(list)
    return result
或者,也可以使用
functools.reduce()
操作符
模块:

import functools, operator
def merge(lists):
    return functools.reduce(operator.add, lists)
它只是:

将两个参数的函数从左到右累加地应用于序列项,以便将序列缩减为单个值。例如,reduce(lambda x,y:x+y,[1,2,3,4,5])计算(((1+2)+3)+4)+5)。左参数x是累积值,右参数y是序列中的更新值


是lambda x,y:x+y的快捷方式

“有些人”是对的,使用+。或者清楚地解释为什么+不适用于您。您的要求非常不明确,为什么使用
+
连接列表并不完全符合您的要求。如果您在不同的时间得到不同的列表,那么您可能只想将这些时间中的每一个连接起来。你有没有写过任何你可以展示的代码,把你的问题固定在一些具体的东西上?可能是@JulienBernu的副本我很抱歉让它不清楚,因为我是一个新的编码。它现在可能无法工作的原因是,我想编写一个函数,该函数可以合并用户在语音识别中给出的任意多个列表。我的意思是,我希望有一个预先存在的代码,当用户记录并运行代码时(我的代码目前将单词从for循环中分离为列表,这是由于我稍后要做的特定操作),python将返回一个最终列表。所以一次我可以有5个列表,下一次我可以有32个。我的主要目标是将它们连接成一个。@Blckknght到目前为止,我的代码是list=array.split(“,”)#,它可以创建单独的列表。很抱歉,我没有解释“mutating”是什么意思。我的意思是,我想创建一个代码,它可以接受不同数量的列表,并将它们合并到一个列表中。在您的代码中,您已经知道只有两个列表,但是如果您不知道语音识别中的列表总数,该怎么办?谢谢你的帮助!你看,我想创建一个代码或函数,可以将不同数量的列表合并成一个。在您的代码中,您已经知道只有两个列表,但是如果您不知道语音识别中的列表总数,该怎么办?谢谢@维克,我在最新的回答中就是为了你这么做的!非常感谢。我会尝试使用它们,看看它们是否有效!谢谢你的帮助,我为迟来的回复道歉@vick别忘了接受我的答案,如果有帮助的话,点击投票内容下方的复选标记。你应该能够很快测试这个…@vick我的代码有一个小错误-我忘记返回结果了!请再试一次我的解决方案,我已经解决了