[英]Reshaping a python list while keeping the order
如果我有一个像这样的python列表:
T = [
['07,07,2012 22:10', ['people','drama','melody','bun']],
['08,07,2012 21:04', ['queen','group']],
['08,07,2012 21:23', ['printing','market','shopping']],
['08,07,2012 21:04', ['people','bun']],
['08,11,2012 11:14', ['kangaroo']]
]
我需要将此列表转换为以下格式:
T =[
['07,07,2012 22:10', 'people'],
['07,07,2012 22:10', 'drama'],
['07,07,2012 22:10', 'melody'],
['07,07,2012 22:10', 'bun'],
['08,07,2012 21:04', 'queen'],
['08,07,2012 21:04', 'group'],
['08,07,2012 21:23', 'printing'],
['08,07,2012 21:23', 'market'],
['08,07,2012 21:23', 'shopping'],
['08,07,2012 21:04', 'people'],
['08,07,2012 21:04', 'bun'],
[''08,11,2012 11:14'', 'kangaroo']
]
例如,对于每个元素的第一子元素的长度大于1(在原始列表T中),请拆分第一子元素( a[1] for a in T if len(a[1] > 1)
),然后将其附加为具有相同时间戳的另一个列表。 也许我的话语缺乏解释,但是以上示例肯定可以解释我需要做的事情。 任何帮助,将不胜感激。
使用列表理解:
[(timestamp, item) for timestamp, items in T for item in items]
这将为您提供一个元组列表,可能在这里很合适。 但是您可以对其进行修改以获得列表列表:
[[timestamp, item] for timestamp, items in T for item in items]
在T上尝试:
def process(t):
new = []
for i in t:
for j in i[1]:
new.append([i[0], j])
return new
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.