这可能是一个初学者问题,但我不知道如何搜索答案(因为我不能“命名”这个问题)
我有2个列表或2个列表的元组
xxx = ["time1", "time2", "time3"]
yyy = ["value1", "value2", "value3"]
zzz=(xxx,yyy)
现在我想为每个条目创建一个列表/元组 结果应该是
[['time1', 'value1'], ['time2', 'value2'], ['time3', 'value3']]
我能用for循环(和zip)做到这一点但是没有“更好”的解决方案吗? 这是一个similar question,但我无法使用那里给出的解决方案来解决我的问题
答案 0 :(得分:11)
使用内置zip
功能:
zzz = zip(xxx, yyy)
当然,这会创建一个元组列表(或python3.x中可迭代的元组)。如果你真的想要一个清单列表:
#list (python2.x) or iterable(python3.x) of lists
zzz = map(list,zip(xxx,yyy))
或
#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
是一个列表,列表comprehsion解决方案将起作用,或者你可以从zip
生成的迭代构造一个列表:
#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
答案 1 :(得分:0)
我注意到您的数据包含时间戳和数字。如果你正在进行数字密集型计算,那么numpy数组可能值得一看。它们提供更好的性能,并且转置非常简单。 (arrayname.transpose()
甚至arrayname.T
)