将列表转换为“转置”lis

2024-10-01 15:28:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

xxx = ["time1", "time2", "time3"]
yyy = ["value1", "value2", "value3"]
zzz=(xxx,yyy)

现在我想为每个条目创建一个list/tuple 结果应该是

^{pr2}$

我可以用for循环(和zip)来实现这一点,但是没有“更好”的解决方案吗? 这是一个similar question,但我不能使用这里给出的解决问题的分辨率


Tags: 答案列表条目命名xxx元组初学者value1
2条回答

使用内置的^{}函数:

 zzz = zip(xxx, yyy) 

当然,这会创建一个元组列表(或者python3.x中的一个iterable元组)。如果您真的需要列表:

^{pr2}$

或者

 #list of lists, not list of tuples
 #python 2.x and python 3.x
 zzz = [ list(x) for x in 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数组可能值得一看。它们提供更好的性能,并且转置非常简单。(arrayname.transpose()甚至arrayname.T

相关问题 更多 >

    热门问题