簡體   English   中英

按 Python 中列表列表中的項目分組

[英]Grouping by items in list of lists in Python

我有一個看起來像這樣的 Python 列表:

mylist = [[1,apple,orange,banana],[2,apple],[3,banana,grapes]]

我怎樣才能把它變成這樣的東西:

new_list = [[apple,1,2],[orange,1],[banana,1,3],[grapes,3]

基本上我想創建新的列表列表,該列表由原始列表列表中的每個水果分組,第一個索引中的數字

您可以使用defaultdict對每個水果的索引進行分組,然后連接鍵和值

from collections import defaultdict
mylist = [[1, "apple", "orange", "banana"], [2, "apple"], [3, "banana", "grapes"]]

result = defaultdict(list)
for idx, *fruits in mylist:
    for fruit in fruits:
        result[fruit].append(idx)
print(result)  # {'apple': [1, 2], 'orange': [1], 'banana': [1, 3], 'grapes': [3]}

result = [[key, *values] for key, values in result.items()]
print(result)  # [['apple', 1, 2], ['orange', 1], ['banana', 1, 3], ['grapes', 3]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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