Python 将列表转换为“转置”列表

Python 将列表转换为“转置”列表,python,Python,这可能是一个初学者的问题,但我不知道如何寻找答案,因为我无法命名这个问题 我有两个列表或两个列表的元组 xxx = ["time1", "time2", "time3"] yyy = ["value1", "value2", "value3"] zzz=(xxx,yyy) 现在我想为每个条目创建一个列表/元组 结果应该是 [['time1', 'value1'], ['time2', 'value2'], ['time3', 'value3']] 我可以用for循环和zip实现这一点,但是没

这可能是一个初学者的问题,但我不知道如何寻找答案,因为我无法命名这个问题

我有两个列表或两个列表的元组

xxx = ["time1", "time2", "time3"]
yyy = ["value1", "value2", "value3"]
zzz=(xxx,yyy)
现在我想为每个条目创建一个列表/元组 结果应该是

[['time1', 'value1'], ['time2', 'value2'], ['time3', 'value3']]

我可以用for循环和zip实现这一点,但是没有更好的解决方案吗? 下面是一个示例,但我无法使用此处为我的问题提供的解决方案使用内置函数:

 zzz = zip(xxx, yyy) 
当然,这会在python3.x中创建一个元组列表或元组的iterable。如果您确实需要列表列表,请执行以下操作:

 #list (python2.x) or iterable(python3.x) of lists
 zzz = map(list,zip(xxx,yyy)) 

如果您使用的是python3.x,并且希望确保zzz是一个列表,那么列表压缩解决方案将起作用,或者您可以从zip生成的iterable中构造一个列表:

#list of tuples in python3.x.  
zzz = list(zip(xxx,yyy)) #equivalent to zip(xxx,yyy) in python2.x
                         #will work in python2.x, but will make an extra copy.
                         # which will be available for garbage collection
                         # immediately
使用内置功能:

 zzz = zip(xxx, yyy) 
当然,这会在python3.x中创建一个元组列表或元组的iterable。如果您确实需要列表列表,请执行以下操作:

 #list (python2.x) or iterable(python3.x) of lists
 zzz = map(list,zip(xxx,yyy)) 

如果您使用的是python3.x,并且希望确保zzz是一个列表,那么列表压缩解决方案将起作用,或者您可以从zip生成的iterable中构造一个列表:

#list of tuples in python3.x.  
zzz = list(zip(xxx,yyy)) #equivalent to zip(xxx,yyy) in python2.x
                         #will work in python2.x, but will make an extra copy.
                         # which will be available for garbage collection
                         # immediately

我注意到您的数据包括时间戳和数字。如果您正在进行数字密集型计算,那么numpy数组可能值得一看。它们提供更好的性能,并且转置非常简单。我注意到您的数据包括时间戳和数字。如果您正在进行数字密集型计算,那么numpy数组可能值得一看。它们提供更好的性能,并且转置非常简单。arrayname.transpose甚至是arrayname.T

我可以用for循环和zip来实现这一点,但是没有更好的解决方案了吗zip有什么不好的地方?如何将zip的结果转换为新列表?因为zip返回一个iterableobject@nobs-我已经更新了,现在我看到您正在使用python 3。我可以使用for循环和zip来实现这一点,但是没有更好的解决方案了吗?-zip有什么不好的地方?如何将zip的结果转换为新列表?因为zip返回一个iterableobject@nobs-我已经更新了,现在我看到您正在使用python 3。感谢您的快速回答,它应该在python 2.7和3.x中工作,因此我必须使用通用方法ListZip。。。符合要求,假设您不介意在2.7中创建不必要的副本。@nobs-上述解决方案之一应该适合您。如果您想要列表列表而不是元组列表,那么列表理解可能是您的最佳选择。如果元组列表正常,则listzip。。。在这两种情况下都能工作。感谢您的快速回答,它应该在Python2.7和3.x中工作,所以我必须使用通用方法ListZip。。。符合要求,假设您不介意在2.7中创建不必要的副本。@nobs-上述解决方案之一应该适合您。如果您想要列表列表而不是元组列表,那么列表理解可能是您的最佳选择。如果元组列表正常,则listzip。。。在这两种情况下都能工作。你是对的,但这是我从c-dll调用中得到的响应,我必须以更易于管理的方式更改数据,这只是一些测试函数,因此,速度目前不是主题,但我正在使用python测试CDLL的速度:-你是对的,但这是我从c-dll调用中得到的响应,我必须以更易于管理的方式更改数据,这只是一些测试函数,因此速度目前不是主题,但我正在使用python测试CDLL的速度:-