簡體   English   中英

重塑python列表,同時保持順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM