如何在python中将列表与子列表合并为一个列表
是否有一种快速简单的方法来转换列表(假设列表长度相同): 使用此表单将子列表合并为一个:如何在python中将列表与子列表合并为一个列表,python,list,Python,List,是否有一种快速简单的方法来转换列表(假设列表长度相同): 使用此表单将子列表合并为一个: list = [ [1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi'] ] 或者最终 list = [ {'number': 1, 'letter': 'a', 'fruit': 'oranges'}, {'number': 2,
list = [ [1, 'a', 'orange'],
[2, 'b', 'apple'],
[3, 'c', 'banana'],
[4, 'd', 'kiwi'] ]
或者最终
list = [ {'number': 1, 'letter': 'a', 'fruit': 'oranges'},
{'number': 2, 'letter': 'b', 'fruit': 'apple'},
{'number': 3, 'letter': 'c', 'fruit': 'banana'},
{'number': 4, 'letter': 'd', 'fruit': 'kiwi'} ]
还是必须使用多个循环?您可以使用内置的
zip
功能。
对于第一个,只需将它们压缩在一起,然后使用map函数将内部元组转换为列表,然后使它们成为列表
范例-
numbers = [1, 2, 3, 4]
letters = ['a', 'b', 'c', 'd']
fruits = ['orange', 'apple', 'banana', 'kiwi']
>>> list(map(list, zip(numbers,letters,fruits)))
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
请注意,对于Python2.x,您不需要围绕map(…)
函数的list(…)
函数,因为它返回list,但在Python3.x中map(…)
函数返回一个生成器,因此如果需要list,您需要将其转换为list
对于第二个,您可以使用列表理解和zip函数,如下所示-
>>> list({'number':x,'letter':y,'fruit':z} for x,y,z in zip(numbers,letters,fruits))
[{'number': 1, 'letter': 'a', 'fruit': 'orange'}, {'number': 2, 'letter': 'b', 'fruit': 'apple'}, {'number': 3, 'letter': 'c', 'fruit': 'banana'}, {'number': 4, 'letter': 'd', 'fruit': 'kiwi'}]
您可以使用内置的
zip
功能。
对于第一个,只需将它们压缩在一起,然后使用map函数将内部元组转换为列表,然后使它们成为列表
范例-
numbers = [1, 2, 3, 4]
letters = ['a', 'b', 'c', 'd']
fruits = ['orange', 'apple', 'banana', 'kiwi']
>>> list(map(list, zip(numbers,letters,fruits)))
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
请注意,对于Python2.x,您不需要围绕map(…)
函数的list(…)
函数,因为它返回list,但在Python3.x中map(…)
函数返回一个生成器,因此如果需要list,您需要将其转换为list
对于第二个,您可以使用列表理解和zip函数,如下所示-
>>> list({'number':x,'letter':y,'fruit':z} for x,y,z in zip(numbers,letters,fruits))
[{'number': 1, 'letter': 'a', 'fruit': 'orange'}, {'number': 2, 'letter': 'b', 'fruit': 'apple'}, {'number': 3, 'letter': 'c', 'fruit': 'banana'}, {'number': 4, 'letter': 'd', 'fruit': 'kiwi'}]
您可以使用内置的
zip
功能。
对于第一个,只需将它们压缩在一起,然后使用map函数将内部元组转换为列表,然后使它们成为列表
范例-
numbers = [1, 2, 3, 4]
letters = ['a', 'b', 'c', 'd']
fruits = ['orange', 'apple', 'banana', 'kiwi']
>>> list(map(list, zip(numbers,letters,fruits)))
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
请注意,对于Python2.x,您不需要围绕map(…)
函数的list(…)
函数,因为它返回list,但在Python3.x中map(…)
函数返回一个生成器,因此如果需要list,您需要将其转换为list
对于第二个,您可以使用列表理解和zip函数,如下所示-
>>> list({'number':x,'letter':y,'fruit':z} for x,y,z in zip(numbers,letters,fruits))
[{'number': 1, 'letter': 'a', 'fruit': 'orange'}, {'number': 2, 'letter': 'b', 'fruit': 'apple'}, {'number': 3, 'letter': 'c', 'fruit': 'banana'}, {'number': 4, 'letter': 'd', 'fruit': 'kiwi'}]
您可以使用内置的
zip
功能。
对于第一个,只需将它们压缩在一起,然后使用map函数将内部元组转换为列表,然后使它们成为列表
范例-
numbers = [1, 2, 3, 4]
letters = ['a', 'b', 'c', 'd']
fruits = ['orange', 'apple', 'banana', 'kiwi']
>>> list(map(list, zip(numbers,letters,fruits)))
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
请注意,对于Python2.x,您不需要围绕map(…)
函数的list(…)
函数,因为它返回list,但在Python3.x中map(…)
函数返回一个生成器,因此如果需要list,您需要将其转换为list
对于第二个,您可以使用列表理解和zip函数,如下所示-
>>> list({'number':x,'letter':y,'fruit':z} for x,y,z in zip(numbers,letters,fruits))
[{'number': 1, 'letter': 'a', 'fruit': 'orange'}, {'number': 2, 'letter': 'b', 'fruit': 'apple'}, {'number': 3, 'letter': 'c', 'fruit': 'banana'}, {'number': 4, 'letter': 'd', 'fruit': 'kiwi'}]
这是第一个很好的例子:
>>> a = [1, 2, 3, 4]
>>> b = ['a', 'b', 'c', 'd']
>>> c = ['orange', 'apple', 'banana', 'kiwi']
>>> [[x, y, z] for x, y, z in zip(a, b, c)]
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
这是第一个很好的例子:
>>> a = [1, 2, 3, 4]
>>> b = ['a', 'b', 'c', 'd']
>>> c = ['orange', 'apple', 'banana', 'kiwi']
>>> [[x, y, z] for x, y, z in zip(a, b, c)]
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
这是第一个很好的例子:
>>> a = [1, 2, 3, 4]
>>> b = ['a', 'b', 'c', 'd']
>>> c = ['orange', 'apple', 'banana', 'kiwi']
>>> [[x, y, z] for x, y, z in zip(a, b, c)]
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
这是第一个很好的例子:
>>> a = [1, 2, 3, 4]
>>> b = ['a', 'b', 'c', 'd']
>>> c = ['orange', 'apple', 'banana', 'kiwi']
>>> [[x, y, z] for x, y, z in zip(a, b, c)]
[[1, 'a', 'orange'], [2, 'b', 'apple'], [3, 'c', 'banana'], [4, 'd', 'kiwi']]
对于数值来说,使用numpy(将是vstack((数字、字母、水果)).T)很容易,但是numpy不会为任意列表生成合适的解。@stevori我希望您的意思是“使用
numpy
没有合适的解”。当然。我只是澄清了一下。对于数值数据,numpy解决方案通常比下面的通用答案更受欢迎。好的,谢谢。在我的真实代码中,我有数值(大部分是浮点数)。为什么我的问题是重复的?“如何从多维数组中提取列?”这一主题并没有回答我的问题……对于数值来说,使用numpy(可能是vstack((数字、字母、水果)).T)很容易,但是numpy对任意列表没有合适的解决方案。@stevori我希望你的意思是“使用numpy
没有合适的解决方案”。当然。我只是澄清了一下。对于数值数据,numpy解决方案通常比下面的通用答案更受欢迎。好的,谢谢。在我的真实代码中,我有数值(大部分是浮点数)。为什么我的问题是重复的?“如何从多维数组中提取列?”这一主题并没有回答我的问题……对于数值来说,使用numpy(可能是vstack((数字、字母、水果)).T)很容易,但是numpy对任意列表没有合适的解决方案。@stevori我希望你的意思是“使用numpy
没有合适的解决方案”。当然。我只是澄清了一下。对于数值数据,numpy解决方案通常比下面的通用答案更受欢迎。好的,谢谢。在我的真实代码中,我有数值(大部分是浮点数)。为什么我的问题是重复的?“如何从多维数组中提取列?”这一主题并没有回答我的问题……对于数值来说,使用numpy(可能是vstack((数字、字母、水果)).T)很容易,但是numpy对任意列表没有合适的解决方案。@stevori我希望你的意思是“使用numpy
没有合适的解决方案”。当然。我只是澄清了一下。对于数值数据,numpy解决方案通常比下面的通用答案更受欢迎。好的,谢谢。在我的真实代码中,我有数值(大部分是浮点数)。为什么我的问题是重复的?主题“如何从多维数组中提取列?”并没有回答我的问题…可以编辑,很高兴知道。我使用Python2.7.Ok进行编辑,很高兴知道。我使用Python2.7.Ok进行编辑,很高兴知道。我使用Python2.7.Ok进行编辑,很高兴知道。我使用Python2.7。